1. Packages
  2. Nomad Provider
  3. API Docs
  4. getNamespaces
Nomad v2.5.0 published on Thursday, Apr 17, 2025 by Pulumi

nomad.getNamespaces

Start a Neo task
Explain and create a nomad.getNamespaces resource
nomad logo
Nomad v2.5.0 published on Thursday, Apr 17, 2025 by Pulumi

    Retrieve a list of namespaces available in Nomad.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as nomad from "@pulumi/nomad";
    
    export = async () => {
        const namespaces = await nomad.getNamespaces({});
        const namespace: nomad.AclPolicy[] = [];
        for (const range = {value: 0}; range.value < namespaces.namespaces.length; range.value++) {
            namespace.push(new nomad.AclPolicy(`namespace-${range.value}`, {
                name: `namespace-${namespaces[range.value]}`,
                description: `Write to the namespace ${namespaces[range.value]}`,
                rulesHcl: `namespace "${namespaces[range.value]}" {
      policy = "write"
    }
    `,
            }));
        }
    }
    
    import pulumi
    import pulumi_nomad as nomad
    
    namespaces = nomad.get_namespaces()
    namespace = []
    for range in [{"value": i} for i in range(0, len(namespaces.namespaces))]:
        namespace.append(nomad.AclPolicy(f"namespace-{range['value']}",
            name=f"namespace-{namespaces[range['value']]}",
            description=f"Write to the namespace {namespaces[range['value']]}",
            rules_hcl=f"""namespace "{namespaces[range["value"]]}" {{
      policy = "write"
    }}
    """))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		namespaces, err := nomad.GetNamespaces(ctx, map[string]interface{}{}, nil)
    		if err != nil {
    			return err
    		}
    		var namespace []*nomad.AclPolicy
    		for index := 0; index < int(len(namespaces.Namespaces)); index++ {
    			key0 := index
    			val0 := index
    			__res, err := nomad.NewAclPolicy(ctx, fmt.Sprintf("namespace-%v", key0), &nomad.AclPolicyArgs{
    				Name:        pulumi.Sprintf("namespace-%v", namespaces[val0]),
    				Description: pulumi.Sprintf("Write to the namespace %v", namespaces[val0]),
    				RulesHcl:    pulumi.Sprintf("namespace \"%v\" {\n  policy = \"write\"\n}\n", namespaces[val0]),
    			})
    			if err != nil {
    				return err
    			}
    			namespace = append(namespace, __res)
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Pulumi;
    using Nomad = Pulumi.Nomad;
    
    return await Deployment.RunAsync(async() => 
    {
        var namespaces = await Nomad.GetNamespaces.InvokeAsync();
    
        var @namespace = new List<Nomad.AclPolicy>();
        for (var rangeIndex = 0; rangeIndex < namespaces.Namespaces.Length; rangeIndex++)
        {
            var range = new { Value = rangeIndex };
            @namespace.Add(new Nomad.AclPolicy($"namespace-{range.Value}", new()
            {
                Name = $"namespace-{namespaces[range.Value]}",
                Description = $"Write to the namespace {namespaces[range.Value]}",
                RulesHcl = @$"namespace ""{namespaces[range.Value]}"" {{
      policy = ""write""
    }}
    ",
            }));
        }
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.nomad.NomadFunctions;
    import com.pulumi.nomad.AclPolicy;
    import com.pulumi.nomad.AclPolicyArgs;
    import com.pulumi.codegen.internal.KeyedValue;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var namespaces = NomadFunctions.getNamespaces(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
    
            for (var i = 0; i < namespaces.namespaces().length(); i++) {
                new AclPolicy("namespace-" + i, AclPolicyArgs.builder()
                    .name(String.format("namespace-%s", namespaces[range.value()]))
                    .description(String.format("Write to the namespace %s", namespaces[range.value()]))
                    .rulesHcl("""
    namespace "%s" {
      policy = "write"
    }
    ", namespaces[range.value()]))
                    .build());
    
            
    }
        }
    }
    
    Example coming soon!
    

    Using getNamespaces

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getNamespaces(opts?: InvokeOptions): Promise<GetNamespacesResult>
    function getNamespacesOutput(opts?: InvokeOptions): Output<GetNamespacesResult>
    def get_namespaces(opts: Optional[InvokeOptions] = None) -> GetNamespacesResult
    def get_namespaces_output(opts: Optional[InvokeOptions] = None) -> Output[GetNamespacesResult]
    func GetNamespaces(ctx *Context, opts ...InvokeOption) (*GetNamespacesResult, error)
    func GetNamespacesOutput(ctx *Context, opts ...InvokeOption) GetNamespacesResultOutput

    > Note: This function is named GetNamespaces in the Go SDK.

    public static class GetNamespaces 
    {
        public static Task<GetNamespacesResult> InvokeAsync(InvokeOptions? opts = null)
        public static Output<GetNamespacesResult> Invoke(InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetNamespacesResult> getNamespaces(InvokeOptions options)
    public static Output<GetNamespacesResult> getNamespaces(InvokeOptions options)
    
    fn::invoke:
      function: nomad:index/getNamespaces:getNamespaces
      arguments:
        # arguments dictionary

    getNamespaces Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Namespaces List<string>
    (list of strings) - a list of namespaces available in the cluster.
    Id string
    The provider-assigned unique ID for this managed resource.
    Namespaces []string
    (list of strings) - a list of namespaces available in the cluster.
    id String
    The provider-assigned unique ID for this managed resource.
    namespaces List<String>
    (list of strings) - a list of namespaces available in the cluster.
    id string
    The provider-assigned unique ID for this managed resource.
    namespaces string[]
    (list of strings) - a list of namespaces available in the cluster.
    id str
    The provider-assigned unique ID for this managed resource.
    namespaces Sequence[str]
    (list of strings) - a list of namespaces available in the cluster.
    id String
    The provider-assigned unique ID for this managed resource.
    namespaces List<String>
    (list of strings) - a list of namespaces available in the cluster.

    Package Details

    Repository
    HashiCorp Nomad pulumi/pulumi-nomad
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the nomad Terraform Provider.
    nomad logo
    Nomad v2.5.0 published on Thursday, Apr 17, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate