All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.nomad.kotlin.NomadFunctions.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 2.4.2.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.nomad.kotlin

import com.pulumi.nomad.NomadFunctions.getAclPoliciesPlain
import com.pulumi.nomad.NomadFunctions.getAclPolicyPlain
import com.pulumi.nomad.NomadFunctions.getAclRolePlain
import com.pulumi.nomad.NomadFunctions.getAclRolesPlain
import com.pulumi.nomad.NomadFunctions.getAclTokenPlain
import com.pulumi.nomad.NomadFunctions.getAclTokensPlain
import com.pulumi.nomad.NomadFunctions.getAllocationsPlain
import com.pulumi.nomad.NomadFunctions.getDatacentersPlain
import com.pulumi.nomad.NomadFunctions.getDeploymentsPlain
import com.pulumi.nomad.NomadFunctions.getJobParserPlain
import com.pulumi.nomad.NomadFunctions.getJobPlain
import com.pulumi.nomad.NomadFunctions.getJwksPlain
import com.pulumi.nomad.NomadFunctions.getNamespacePlain
import com.pulumi.nomad.NomadFunctions.getNamespacesPlain
import com.pulumi.nomad.NomadFunctions.getNodePoolPlain
import com.pulumi.nomad.NomadFunctions.getNodePoolsPlain
import com.pulumi.nomad.NomadFunctions.getPluginPlain
import com.pulumi.nomad.NomadFunctions.getPluginsPlain
import com.pulumi.nomad.NomadFunctions.getRegionsPlain
import com.pulumi.nomad.NomadFunctions.getScalingPoliciesPlain
import com.pulumi.nomad.NomadFunctions.getScalingPolicyPlain
import com.pulumi.nomad.NomadFunctions.getSchedulerPolicyPlain
import com.pulumi.nomad.NomadFunctions.getVariablePlain
import com.pulumi.nomad.NomadFunctions.getVolumesPlain
import com.pulumi.nomad.kotlin.inputs.GetAclPoliciesPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclPoliciesPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAclPolicyPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclPolicyPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAclRolePlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclRolePlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAclRolesPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclRolesPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAclTokenPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclTokenPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAclTokensPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAclTokensPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetAllocationsPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetAllocationsPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetDatacentersPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetDatacentersPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetJobParserPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetJobParserPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetJobPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetJobPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetNamespacePlainArgs
import com.pulumi.nomad.kotlin.inputs.GetNamespacePlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetNodePoolPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetNodePoolPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetNodePoolsPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetNodePoolsPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetPluginPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetPluginPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetPluginsPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetPluginsPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetScalingPoliciesPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetScalingPoliciesPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetScalingPolicyPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetScalingPolicyPlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetVariablePlainArgs
import com.pulumi.nomad.kotlin.inputs.GetVariablePlainArgsBuilder
import com.pulumi.nomad.kotlin.inputs.GetVolumesPlainArgs
import com.pulumi.nomad.kotlin.inputs.GetVolumesPlainArgsBuilder
import com.pulumi.nomad.kotlin.outputs.GetAclPoliciesResult
import com.pulumi.nomad.kotlin.outputs.GetAclPolicyResult
import com.pulumi.nomad.kotlin.outputs.GetAclRoleResult
import com.pulumi.nomad.kotlin.outputs.GetAclRolesResult
import com.pulumi.nomad.kotlin.outputs.GetAclTokenResult
import com.pulumi.nomad.kotlin.outputs.GetAclTokensResult
import com.pulumi.nomad.kotlin.outputs.GetAllocationsResult
import com.pulumi.nomad.kotlin.outputs.GetDatacentersResult
import com.pulumi.nomad.kotlin.outputs.GetDeploymentsResult
import com.pulumi.nomad.kotlin.outputs.GetJobParserResult
import com.pulumi.nomad.kotlin.outputs.GetJobResult
import com.pulumi.nomad.kotlin.outputs.GetJwksResult
import com.pulumi.nomad.kotlin.outputs.GetNamespaceResult
import com.pulumi.nomad.kotlin.outputs.GetNamespacesResult
import com.pulumi.nomad.kotlin.outputs.GetNodePoolResult
import com.pulumi.nomad.kotlin.outputs.GetNodePoolsResult
import com.pulumi.nomad.kotlin.outputs.GetPluginResult
import com.pulumi.nomad.kotlin.outputs.GetPluginsResult
import com.pulumi.nomad.kotlin.outputs.GetRegionsResult
import com.pulumi.nomad.kotlin.outputs.GetScalingPoliciesResult
import com.pulumi.nomad.kotlin.outputs.GetScalingPolicyResult
import com.pulumi.nomad.kotlin.outputs.GetSchedulerPolicyResult
import com.pulumi.nomad.kotlin.outputs.GetVariableResult
import com.pulumi.nomad.kotlin.outputs.GetVolumesResult
import kotlinx.coroutines.future.await
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import com.pulumi.nomad.kotlin.outputs.GetAclPoliciesResult.Companion.toKotlin as getAclPoliciesResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAclPolicyResult.Companion.toKotlin as getAclPolicyResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAclRoleResult.Companion.toKotlin as getAclRoleResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAclRolesResult.Companion.toKotlin as getAclRolesResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAclTokenResult.Companion.toKotlin as getAclTokenResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAclTokensResult.Companion.toKotlin as getAclTokensResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetAllocationsResult.Companion.toKotlin as getAllocationsResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetDatacentersResult.Companion.toKotlin as getDatacentersResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetDeploymentsResult.Companion.toKotlin as getDeploymentsResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetJobParserResult.Companion.toKotlin as getJobParserResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetJobResult.Companion.toKotlin as getJobResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetJwksResult.Companion.toKotlin as getJwksResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetNamespaceResult.Companion.toKotlin as getNamespaceResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetNamespacesResult.Companion.toKotlin as getNamespacesResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetNodePoolResult.Companion.toKotlin as getNodePoolResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetNodePoolsResult.Companion.toKotlin as getNodePoolsResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetPluginResult.Companion.toKotlin as getPluginResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetPluginsResult.Companion.toKotlin as getPluginsResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetRegionsResult.Companion.toKotlin as getRegionsResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetScalingPoliciesResult.Companion.toKotlin as getScalingPoliciesResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetScalingPolicyResult.Companion.toKotlin as getScalingPolicyResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetSchedulerPolicyResult.Companion.toKotlin as getSchedulerPolicyResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetVariableResult.Companion.toKotlin as getVariableResultToKotlin
import com.pulumi.nomad.kotlin.outputs.GetVolumesResult.Companion.toKotlin as getVolumesResultToKotlin

public object NomadFunctions {
    /**
     * Retrieve a list of ACL Policies.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getAclPolicies({
     *     prefix: "prod",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_acl_policies(prefix="prod")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetAclPolicies.Invoke(new()
     *     {
     *         Prefix = "prod",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetAclPolicies(ctx, &nomad.GetAclPoliciesArgs{
     * 			Prefix: pulumi.StringRef("prod"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclPoliciesArgs;
     * 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 example = NomadFunctions.getAclPolicies(GetAclPoliciesArgs.builder()
     *             .prefix("prod")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getAclPolicies
     *       Arguments:
     *         prefix: prod
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclPolicies.
     * @return A collection of values returned by getAclPolicies.
     */
    public suspend fun getAclPolicies(argument: GetAclPoliciesPlainArgs): GetAclPoliciesResult =
        getAclPoliciesResultToKotlin(getAclPoliciesPlain(argument.toJava()).await())

    /**
     * @see [getAclPolicies].
     * @param prefix `(string)` An optional string to filter ACL policies based on name prefix. If not provided, all policies are returned.
     * @return A collection of values returned by getAclPolicies.
     */
    public suspend fun getAclPolicies(prefix: String? = null): GetAclPoliciesResult {
        val argument = GetAclPoliciesPlainArgs(
            prefix = prefix,
        )
        return getAclPoliciesResultToKotlin(getAclPoliciesPlain(argument.toJava()).await())
    }

    /**
     * @see [getAclPolicies].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclPoliciesPlainArgs].
     * @return A collection of values returned by getAclPolicies.
     */
    public suspend fun getAclPolicies(argument: suspend GetAclPoliciesPlainArgsBuilder.() -> Unit): GetAclPoliciesResult {
        val builder = GetAclPoliciesPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclPoliciesResultToKotlin(getAclPoliciesPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve information on an ACL Policy.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const myPolicy = nomad.getAclPolicy({
     *     name: "my-policy",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * my_policy = nomad.get_acl_policy(name="my-policy")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var myPolicy = Nomad.GetAclPolicy.Invoke(new()
     *     {
     *         Name = "my-policy",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupAclPolicy(ctx, &nomad.LookupAclPolicyArgs{
     * 			Name: "my-policy",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclPolicyArgs;
     * 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 myPolicy = NomadFunctions.getAclPolicy(GetAclPolicyArgs.builder()
     *             .name("my-policy")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   myPolicy:
     *     fn::invoke:
     *       Function: nomad:getAclPolicy
     *       Arguments:
     *         name: my-policy
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclPolicy.
     * @return A collection of values returned by getAclPolicy.
     */
    public suspend fun getAclPolicy(argument: GetAclPolicyPlainArgs): GetAclPolicyResult =
        getAclPolicyResultToKotlin(getAclPolicyPlain(argument.toJava()).await())

    /**
     * @see [getAclPolicy].
     * @param name `(string)` - the name of the ACL Policy.
     * @return A collection of values returned by getAclPolicy.
     */
    public suspend fun getAclPolicy(name: String): GetAclPolicyResult {
        val argument = GetAclPolicyPlainArgs(
            name = name,
        )
        return getAclPolicyResultToKotlin(getAclPolicyPlain(argument.toJava()).await())
    }

    /**
     * @see [getAclPolicy].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclPolicyPlainArgs].
     * @return A collection of values returned by getAclPolicy.
     */
    public suspend fun getAclPolicy(argument: suspend GetAclPolicyPlainArgsBuilder.() -> Unit): GetAclPolicyResult {
        val builder = GetAclPolicyPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclPolicyResultToKotlin(getAclPolicyPlain(builtArgument.toJava()).await())
    }

    /**
     * Get information on an ACL Role.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getAclRole({
     *     id: "aa534e09-6a07-0a45-2295-a7f77063d429",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_acl_role(id="aa534e09-6a07-0a45-2295-a7f77063d429")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetAclRole.Invoke(new()
     *     {
     *         Id = "aa534e09-6a07-0a45-2295-a7f77063d429",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupAclRole(ctx, &nomad.LookupAclRoleArgs{
     * 			Id: "aa534e09-6a07-0a45-2295-a7f77063d429",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclRoleArgs;
     * 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 example = NomadFunctions.getAclRole(GetAclRoleArgs.builder()
     *             .id("aa534e09-6a07-0a45-2295-a7f77063d429")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getAclRole
     *       Arguments:
     *         id: aa534e09-6a07-0a45-2295-a7f77063d429
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclRole.
     * @return A collection of values returned by getAclRole.
     */
    public suspend fun getAclRole(argument: GetAclRolePlainArgs): GetAclRoleResult =
        getAclRoleResultToKotlin(getAclRolePlain(argument.toJava()).await())

    /**
     * @see [getAclRole].
     * @param id `(string)` The unique identifier of the ACL Role.
     * @return A collection of values returned by getAclRole.
     */
    public suspend fun getAclRole(id: String): GetAclRoleResult {
        val argument = GetAclRolePlainArgs(
            id = id,
        )
        return getAclRoleResultToKotlin(getAclRolePlain(argument.toJava()).await())
    }

    /**
     * @see [getAclRole].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclRolePlainArgs].
     * @return A collection of values returned by getAclRole.
     */
    public suspend fun getAclRole(argument: suspend GetAclRolePlainArgsBuilder.() -> Unit): GetAclRoleResult {
        val builder = GetAclRolePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclRoleResultToKotlin(getAclRolePlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of ACL Roles.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getAclRoles({
     *     prefix: "a242",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_acl_roles(prefix="a242")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetAclRoles.Invoke(new()
     *     {
     *         Prefix = "a242",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetAclRoles(ctx, &nomad.GetAclRolesArgs{
     * 			Prefix: pulumi.StringRef("a242"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclRolesArgs;
     * 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 example = NomadFunctions.getAclRoles(GetAclRolesArgs.builder()
     *             .prefix("a242")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getAclRoles
     *       Arguments:
     *         prefix: a242
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclRoles.
     * @return A collection of values returned by getAclRoles.
     */
    public suspend fun getAclRoles(argument: GetAclRolesPlainArgs): GetAclRolesResult =
        getAclRolesResultToKotlin(getAclRolesPlain(argument.toJava()).await())

    /**
     * @see [getAclRoles].
     * @param prefix `(string)` An optional string to filter ACL Roles based on ID
     * prefix. If not provided, all policies are returned.
     * @return A collection of values returned by getAclRoles.
     */
    public suspend fun getAclRoles(prefix: String? = null): GetAclRolesResult {
        val argument = GetAclRolesPlainArgs(
            prefix = prefix,
        )
        return getAclRolesResultToKotlin(getAclRolesPlain(argument.toJava()).await())
    }

    /**
     * @see [getAclRoles].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclRolesPlainArgs].
     * @return A collection of values returned by getAclRoles.
     */
    public suspend fun getAclRoles(argument: suspend GetAclRolesPlainArgsBuilder.() -> Unit): GetAclRolesResult {
        val builder = GetAclRolesPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclRolesResultToKotlin(getAclRolesPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const myToken = nomad.getAclToken({
     *     accessorId: "aa534e09-6a07-0a45-2295-a7f77063d429",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * my_token = nomad.get_acl_token(accessor_id="aa534e09-6a07-0a45-2295-a7f77063d429")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var myToken = Nomad.GetAclToken.Invoke(new()
     *     {
     *         AccessorId = "aa534e09-6a07-0a45-2295-a7f77063d429",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupAclToken(ctx, &nomad.LookupAclTokenArgs{
     * 			AccessorId: "aa534e09-6a07-0a45-2295-a7f77063d429",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclTokenArgs;
     * 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 myToken = NomadFunctions.getAclToken(GetAclTokenArgs.builder()
     *             .accessorId("aa534e09-6a07-0a45-2295-a7f77063d429")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   myToken:
     *     fn::invoke:
     *       Function: nomad:getAclToken
     *       Arguments:
     *         accessorId: aa534e09-6a07-0a45-2295-a7f77063d429
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclToken.
     * @return A collection of values returned by getAclToken.
     */
    public suspend fun getAclToken(argument: GetAclTokenPlainArgs): GetAclTokenResult =
        getAclTokenResultToKotlin(getAclTokenPlain(argument.toJava()).await())

    /**
     * @see [getAclToken].
     * @param accessorId `(string)` Non-sensitive identifier for this token.
     * @return A collection of values returned by getAclToken.
     */
    public suspend fun getAclToken(accessorId: String): GetAclTokenResult {
        val argument = GetAclTokenPlainArgs(
            accessorId = accessorId,
        )
        return getAclTokenResultToKotlin(getAclTokenPlain(argument.toJava()).await())
    }

    /**
     * @see [getAclToken].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclTokenPlainArgs].
     * @return A collection of values returned by getAclToken.
     */
    public suspend fun getAclToken(argument: suspend GetAclTokenPlainArgsBuilder.() -> Unit): GetAclTokenResult {
        val builder = GetAclTokenPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclTokenResultToKotlin(getAclTokenPlain(builtArgument.toJava()).await())
    }

    /**
     * Get a list of ACL tokens.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const tokens = nomad.getAclTokens({
     *     prefix: "a242",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * tokens = nomad.get_acl_tokens(prefix="a242")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var tokens = Nomad.GetAclTokens.Invoke(new()
     *     {
     *         Prefix = "a242",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetAclTokens(ctx, &nomad.GetAclTokensArgs{
     * 			Prefix: pulumi.StringRef("a242"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAclTokensArgs;
     * 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 tokens = NomadFunctions.getAclTokens(GetAclTokensArgs.builder()
     *             .prefix("a242")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   tokens:
     *     fn::invoke:
     *       Function: nomad:getAclTokens
     *       Arguments:
     *         prefix: a242
     * ```
     * 
     * @param argument A collection of arguments for invoking getAclTokens.
     * @return A collection of values returned by getAclTokens.
     */
    public suspend fun getAclTokens(argument: GetAclTokensPlainArgs): GetAclTokensResult =
        getAclTokensResultToKotlin(getAclTokensPlain(argument.toJava()).await())

    /**
     * @see [getAclTokens].
     * @param prefix `(string)` Optional prefix to filter the tokens.
     * @return A collection of values returned by getAclTokens.
     */
    public suspend fun getAclTokens(prefix: String? = null): GetAclTokensResult {
        val argument = GetAclTokensPlainArgs(
            prefix = prefix,
        )
        return getAclTokensResultToKotlin(getAclTokensPlain(argument.toJava()).await())
    }

    /**
     * @see [getAclTokens].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAclTokensPlainArgs].
     * @return A collection of values returned by getAclTokens.
     */
    public suspend fun getAclTokens(argument: suspend GetAclTokensPlainArgsBuilder.() -> Unit): GetAclTokensResult {
        val builder = GetAclTokensPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAclTokensResultToKotlin(getAclTokensPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of allocations from Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getAllocations({
     *     filter: "JobID == \"example\"",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_allocations(filter="JobID == \"example\"")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetAllocations.Invoke(new()
     *     {
     *         Filter = "JobID == \"example\"",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetAllocations(ctx, &nomad.GetAllocationsArgs{
     * 			Filter: pulumi.StringRef("JobID == \"example\""),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetAllocationsArgs;
     * 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 example = NomadFunctions.getAllocations(GetAllocationsArgs.builder()
     *             .filter("JobID == \"example\"")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getAllocations
     *       Arguments:
     *         filter: JobID == "example"
     * ```
     * 
     * @param argument A collection of arguments for invoking getAllocations.
     * @return A collection of values returned by getAllocations.
     */
    public suspend fun getAllocations(argument: GetAllocationsPlainArgs): GetAllocationsResult =
        getAllocationsResultToKotlin(getAllocationsPlain(argument.toJava()).await())

    /**
     * @see [getAllocations].
     * @param filter `(string: )` - Specifies the
     * [expression][nomad_api_filter] used to filter the results.
     * @param namespace `(string: )` - Specifies the namespace to search for
     * allocations in.
     * @param prefix `(string: )` - Specifies a string to filter allocations
     * based on an ID prefix.
     * @return A collection of values returned by getAllocations.
     */
    public suspend fun getAllocations(
        filter: String? = null,
        namespace: String? = null,
        prefix: String? = null,
    ): GetAllocationsResult {
        val argument = GetAllocationsPlainArgs(
            filter = filter,
            namespace = namespace,
            prefix = prefix,
        )
        return getAllocationsResultToKotlin(getAllocationsPlain(argument.toJava()).await())
    }

    /**
     * @see [getAllocations].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetAllocationsPlainArgs].
     * @return A collection of values returned by getAllocations.
     */
    public suspend fun getAllocations(argument: suspend GetAllocationsPlainArgsBuilder.() -> Unit): GetAllocationsResult {
        val builder = GetAllocationsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAllocationsResultToKotlin(getAllocationsPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of datacenters.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const datacenters = nomad.getDatacenters({
     *     prefix: "prod",
     *     ignoreDownNodes: true,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * datacenters = nomad.get_datacenters(prefix="prod",
     *     ignore_down_nodes=True)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var datacenters = Nomad.GetDatacenters.Invoke(new()
     *     {
     *         Prefix = "prod",
     *         IgnoreDownNodes = true,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetDatacenters(ctx, &nomad.GetDatacentersArgs{
     * 			Prefix:          pulumi.StringRef("prod"),
     * 			IgnoreDownNodes: pulumi.BoolRef(true),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetDatacentersArgs;
     * 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 datacenters = NomadFunctions.getDatacenters(GetDatacentersArgs.builder()
     *             .prefix("prod")
     *             .ignoreDownNodes(true)
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   datacenters:
     *     fn::invoke:
     *       Function: nomad:getDatacenters
     *       Arguments:
     *         prefix: prod
     *         ignoreDownNodes: true
     * ```
     * 
     * @param argument A collection of arguments for invoking getDatacenters.
     * @return A collection of values returned by getDatacenters.
     */
    public suspend fun getDatacenters(argument: GetDatacentersPlainArgs): GetDatacentersResult =
        getDatacentersResultToKotlin(getDatacentersPlain(argument.toJava()).await())

    /**
     * @see [getDatacenters].
     * @param ignoreDownNodes `(bool: false)`: An optional flag that, if set to `true` will ignore down nodes when compiling the list of datacenters.
     * @param prefix `(string)`: An optional string to filter datacenters based on name prefix. If not provided, all datacenters are returned.
     * @return A collection of values returned by getDatacenters.
     */
    public suspend fun getDatacenters(ignoreDownNodes: Boolean? = null, prefix: String? = null): GetDatacentersResult {
        val argument = GetDatacentersPlainArgs(
            ignoreDownNodes = ignoreDownNodes,
            prefix = prefix,
        )
        return getDatacentersResultToKotlin(getDatacentersPlain(argument.toJava()).await())
    }

    /**
     * @see [getDatacenters].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetDatacentersPlainArgs].
     * @return A collection of values returned by getDatacenters.
     */
    public suspend fun getDatacenters(argument: suspend GetDatacentersPlainArgsBuilder.() -> Unit): GetDatacentersResult {
        val builder = GetDatacentersPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getDatacentersResultToKotlin(getDatacentersPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of deployments in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getDeployments({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_deployments()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetDeployments.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetDeployments(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 example = NomadFunctions.getDeployments();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getDeployments
     *       Arguments: {}
     * ```
     * 
     * @param argument Retrieve a list of deployments in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getDeployments({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_deployments()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetDeployments.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetDeployments(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 example = NomadFunctions.getDeployments();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getDeployments
     *       Arguments: {}
     * ```
     * 
     * @return A collection of values returned by getDeployments.
     */
    public suspend fun getDeployments(): GetDeploymentsResult =
        getDeploymentsResultToKotlin(getDeploymentsPlain().await())

    /**
     * Get information on a job ID. The aim of this datasource is to enable
     * you to act on various settings and states of a particular job.
     * An error is triggered if zero or more than one result is returned by the query.
     * ## Example Usage
     * Get the data about a snapshot:
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getJob({
     *     jobId: "example",
     *     namespace: "dev",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_job(job_id="example",
     *     namespace="dev")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetJob.Invoke(new()
     *     {
     *         JobId = "example",
     *         Namespace = "dev",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupJob(ctx, &nomad.LookupJobArgs{
     * 			JobId:     "example",
     * 			Namespace: pulumi.StringRef("dev"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetJobArgs;
     * 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 example = NomadFunctions.getJob(GetJobArgs.builder()
     *             .jobId("example")
     *             .namespace("dev")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getJob
     *       Arguments:
     *         jobId: example
     *         namespace: dev
     * ```
     * 
     * @param argument A collection of arguments for invoking getJob.
     * @return A collection of values returned by getJob.
     */
    public suspend fun getJob(argument: GetJobPlainArgs): GetJobResult =
        getJobResultToKotlin(getJobPlain(argument.toJava()).await())

    /**
     * @see [getJob].
     * @param jobId `(string)` ID of the job.
     * @param namespace `(string)` Namespace of the specified job.
     * @return A collection of values returned by getJob.
     */
    public suspend fun getJob(jobId: String, namespace: String? = null): GetJobResult {
        val argument = GetJobPlainArgs(
            jobId = jobId,
            namespace = namespace,
        )
        return getJobResultToKotlin(getJobPlain(argument.toJava()).await())
    }

    /**
     * @see [getJob].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetJobPlainArgs].
     * @return A collection of values returned by getJob.
     */
    public suspend fun getJob(argument: suspend GetJobPlainArgsBuilder.() -> Unit): GetJobResult {
        val builder = GetJobPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getJobResultToKotlin(getJobPlain(builtArgument.toJava()).await())
    }

    /**
     * Parse a HCL jobspec and produce the equivalent JSON encoded job.
     * @param argument A collection of arguments for invoking getJobParser.
     * @return A collection of values returned by getJobParser.
     */
    public suspend fun getJobParser(argument: GetJobParserPlainArgs): GetJobParserResult =
        getJobParserResultToKotlin(getJobParserPlain(argument.toJava()).await())

    /**
     * @see [getJobParser].
     * @param canonicalize `(boolean: true)` - flag to enable setting any unset fields to their default values.
     * @param hcl `(string)` - the HCL definition of the job.
     * @return A collection of values returned by getJobParser.
     */
    public suspend fun getJobParser(canonicalize: Boolean? = null, hcl: String): GetJobParserResult {
        val argument = GetJobParserPlainArgs(
            canonicalize = canonicalize,
            hcl = hcl,
        )
        return getJobParserResultToKotlin(getJobParserPlain(argument.toJava()).await())
    }

    /**
     * @see [getJobParser].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetJobParserPlainArgs].
     * @return A collection of values returned by getJobParser.
     */
    public suspend fun getJobParser(argument: suspend GetJobParserPlainArgsBuilder.() -> Unit): GetJobParserResult {
        val builder = GetJobParserPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getJobParserResultToKotlin(getJobParserPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve the cluster JWKS public keys.
     * The keys are returned both as a list of maps (`keys`), and as a list of PEM-encoded strings
     * (`pem_keys`), which may be more convenient for use.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getJwks({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_jwks()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetJwks.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetJwks(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 example = NomadFunctions.getJwks();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getJwks
     *       Arguments: {}
     * ```
     * 
     * @param argument Retrieve the cluster JWKS public keys.
     * The keys are returned both as a list of maps (`keys`), and as a list of PEM-encoded strings
     * (`pem_keys`), which may be more convenient for use.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getJwks({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_jwks()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetJwks.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetJwks(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 example = NomadFunctions.getJwks();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getJwks
     *       Arguments: {}
     * ```
     * 
     * @return A collection of values returned by getJwks.
     */
    public suspend fun getJwks(): GetJwksResult = getJwksResultToKotlin(getJwksPlain().await())

    /**
     * Get information about a namespace in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const namespaces = nomad.getNamespace({
     *     name: "default",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * namespaces = nomad.get_namespace(name="default")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var namespaces = Nomad.GetNamespace.Invoke(new()
     *     {
     *         Name = "default",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupNamespace(ctx, &nomad.LookupNamespaceArgs{
     * 			Name: "default",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetNamespaceArgs;
     * 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.getNamespace(GetNamespaceArgs.builder()
     *             .name("default")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   namespaces:
     *     fn::invoke:
     *       Function: nomad:getNamespace
     *       Arguments:
     *         name: default
     * ```
     * 
     * @param argument A collection of arguments for invoking getNamespace.
     * @return A collection of values returned by getNamespace.
     */
    public suspend fun getNamespace(argument: GetNamespacePlainArgs): GetNamespaceResult =
        getNamespaceResultToKotlin(getNamespacePlain(argument.toJava()).await())

    /**
     * @see [getNamespace].
     * @param name `(string)` - The name of the namespace.
     * @return A collection of values returned by getNamespace.
     */
    public suspend fun getNamespace(name: String): GetNamespaceResult {
        val argument = GetNamespacePlainArgs(
            name = name,
        )
        return getNamespaceResultToKotlin(getNamespacePlain(argument.toJava()).await())
    }

    /**
     * @see [getNamespace].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetNamespacePlainArgs].
     * @return A collection of values returned by getNamespace.
     */
    public suspend fun getNamespace(argument: suspend GetNamespacePlainArgsBuilder.() -> Unit): GetNamespaceResult {
        val builder = GetNamespacePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNamespaceResultToKotlin(getNamespacePlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of namespaces available in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * 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"
     * }
     * `,
     *         }));
     *     }
     * }
     * ```
     * ```python
     * 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"
     * }}
     * """))
     * ```
     * ```csharp
     * 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();
     *     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""
     * }}
     * ",
     *         }));
     *     }
     * });
     * ```
     * ```go
     * 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, nil, 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
     * 	})
     * }
     * ```
     * ```java
     * 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();
     *         for (var i = 0; i < namespaces.applyValue(getNamespacesResult -> getNamespacesResult.namespaces()).length(); i++) {
     *             new AclPolicy("namespace-" + i, AclPolicyArgs.builder()
     *                 .name(String.format("namespace-%s", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .description(String.format("Write to the namespace %s", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .rulesHcl("""
     * namespace "%s" {
     *   policy = "write"
     * }
     * ", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .build());
     * }
     *     }
     * }
     * ```
     * 
     * @param argument Retrieve a list of namespaces available in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * 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"
     * }
     * `,
     *         }));
     *     }
     * }
     * ```
     * ```python
     * 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"
     * }}
     * """))
     * ```
     * ```csharp
     * 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();
     *     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""
     * }}
     * ",
     *         }));
     *     }
     * });
     * ```
     * ```go
     * 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, nil, 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
     * 	})
     * }
     * ```
     * ```java
     * 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();
     *         for (var i = 0; i < namespaces.applyValue(getNamespacesResult -> getNamespacesResult.namespaces()).length(); i++) {
     *             new AclPolicy("namespace-" + i, AclPolicyArgs.builder()
     *                 .name(String.format("namespace-%s", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .description(String.format("Write to the namespace %s", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .rulesHcl("""
     * namespace "%s" {
     *   policy = "write"
     * }
     * ", namespaces.applyValue(getNamespacesResult -> getNamespacesResult)[range.value()]))
     *                 .build());
     * }
     *     }
     * }
     * ```
     * 
     * @return A collection of values returned by getNamespaces.
     */
    public suspend fun getNamespaces(): GetNamespacesResult =
        getNamespacesResultToKotlin(getNamespacesPlain().await())

    /**
     * Get information about a node pool in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const dev = nomad.getNodePool({
     *     name: "dev",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * dev = nomad.get_node_pool(name="dev")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var dev = Nomad.GetNodePool.Invoke(new()
     *     {
     *         Name = "dev",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.LookupNodePool(ctx, &nomad.LookupNodePoolArgs{
     * 			Name: "dev",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetNodePoolArgs;
     * 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 dev = NomadFunctions.getNodePool(GetNodePoolArgs.builder()
     *             .name("dev")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   dev:
     *     fn::invoke:
     *       Function: nomad:getNodePool
     *       Arguments:
     *         name: dev
     * ```
     * 
     * @param argument A collection of arguments for invoking getNodePool.
     * @return A collection of values returned by getNodePool.
     */
    public suspend fun getNodePool(argument: GetNodePoolPlainArgs): GetNodePoolResult =
        getNodePoolResultToKotlin(getNodePoolPlain(argument.toJava()).await())

    /**
     * @see [getNodePool].
     * @param name `(string)` - The name of the node pool to fetch.
     * @return A collection of values returned by getNodePool.
     */
    public suspend fun getNodePool(name: String): GetNodePoolResult {
        val argument = GetNodePoolPlainArgs(
            name = name,
        )
        return getNodePoolResultToKotlin(getNodePoolPlain(argument.toJava()).await())
    }

    /**
     * @see [getNodePool].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetNodePoolPlainArgs].
     * @return A collection of values returned by getNodePool.
     */
    public suspend fun getNodePool(argument: suspend GetNodePoolPlainArgsBuilder.() -> Unit): GetNodePoolResult {
        val builder = GetNodePoolPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNodePoolResultToKotlin(getNodePoolPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of node pools available in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const prod = nomad.getNodePools({
     *     filter: "Meta.env == \"prod\"",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * prod = nomad.get_node_pools(filter="Meta.env == \"prod\"")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var prod = Nomad.GetNodePools.Invoke(new()
     *     {
     *         Filter = "Meta.env == \"prod\"",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetNodePools(ctx, &nomad.GetNodePoolsArgs{
     * 			Filter: pulumi.StringRef("Meta.env == \"prod\""),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetNodePoolsArgs;
     * 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 prod = NomadFunctions.getNodePools(GetNodePoolsArgs.builder()
     *             .filter("Meta.env == \"prod\"")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   prod:
     *     fn::invoke:
     *       Function: nomad:getNodePools
     *       Arguments:
     *         filter: Meta.env == "prod"
     * ```
     * 
     * @param argument A collection of arguments for invoking getNodePools.
     * @return A collection of values returned by getNodePools.
     */
    public suspend fun getNodePools(argument: GetNodePoolsPlainArgs): GetNodePoolsResult =
        getNodePoolsResultToKotlin(getNodePoolsPlain(argument.toJava()).await())

    /**
     * @see [getNodePools].
     * @param filter `(string)` - Specifies the [expression][nomad_api_filter] used to
     * filter the results.
     * @param prefix `(string)` - Specifies a string to filter node pools based on a name
     * prefix.
     * @return A collection of values returned by getNodePools.
     */
    public suspend fun getNodePools(filter: String? = null, prefix: String? = null): GetNodePoolsResult {
        val argument = GetNodePoolsPlainArgs(
            filter = filter,
            prefix = prefix,
        )
        return getNodePoolsResultToKotlin(getNodePoolsPlain(argument.toJava()).await())
    }

    /**
     * @see [getNodePools].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetNodePoolsPlainArgs].
     * @return A collection of values returned by getNodePools.
     */
    public suspend fun getNodePools(argument: suspend GetNodePoolsPlainArgsBuilder.() -> Unit): GetNodePoolsResult {
        val builder = GetNodePoolsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNodePoolsResultToKotlin(getNodePoolsPlain(builtArgument.toJava()).await())
    }

    /**
     * Lookup a plugin by ID. The aim of this datasource is to determine whether
     * a particular plugin exists on the cluster, to find information on the health
     * and availability of the plugin, and to optionally wait for the plugin
     * before performing actions the require an available plugin controller.
     * If a plugin with the specified ID does not exist and the datasource is not
     * configured to wait, it will result in an error. For simple existence checks,
     * use the `nomad.getPlugins` listing datasource.
     * ## Example Usage
     * Check for the existence of a plugin:
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const ebs = nomad.getPlugin({
     *     pluginId: "aws-ebs0",
     *     waitForHealthy: true,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * ebs = nomad.get_plugin(plugin_id="aws-ebs0",
     *     wait_for_healthy=True)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var ebs = Nomad.GetPlugin.Invoke(new()
     *     {
     *         PluginId = "aws-ebs0",
     *         WaitForHealthy = true,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetPlugin(ctx, &nomad.GetPluginArgs{
     * 			PluginId:       "aws-ebs0",
     * 			WaitForHealthy: pulumi.BoolRef(true),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetPluginArgs;
     * 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 ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()
     *             .pluginId("aws-ebs0")
     *             .waitForHealthy(true)
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   ebs:
     *     fn::invoke:
     *       Function: nomad:getPlugin
     *       Arguments:
     *         pluginId: aws-ebs0
     *         waitForHealthy: true
     * ```
     * 
     * This will check for a plugin with the ID `aws-ebs0`, waiting until the plugin
     * is healthy before returning.
     * @param argument A collection of arguments for invoking getPlugin.
     * @return A collection of values returned by getPlugin.
     */
    public suspend fun getPlugin(argument: GetPluginPlainArgs): GetPluginResult =
        getPluginResultToKotlin(getPluginPlain(argument.toJava()).await())

    /**
     * @see [getPlugin].
     * @param pluginId `(string)` ID of the plugin.
     * @param waitForHealthy `(boolean)` retry until the plugin exists and all controllers are healthy
     * @param waitForRegistration `(boolean)` if the plugin doesn't exist, retry until it does
     * @return A collection of values returned by getPlugin.
     */
    public suspend fun getPlugin(
        pluginId: String,
        waitForHealthy: Boolean? = null,
        waitForRegistration: Boolean? = null,
    ): GetPluginResult {
        val argument = GetPluginPlainArgs(
            pluginId = pluginId,
            waitForHealthy = waitForHealthy,
            waitForRegistration = waitForRegistration,
        )
        return getPluginResultToKotlin(getPluginPlain(argument.toJava()).await())
    }

    /**
     * @see [getPlugin].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetPluginPlainArgs].
     * @return A collection of values returned by getPlugin.
     */
    public suspend fun getPlugin(argument: suspend GetPluginPlainArgsBuilder.() -> Unit): GetPluginResult {
        val builder = GetPluginPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPluginResultToKotlin(getPluginPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of dynamic plugins in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getPlugins({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_plugins()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetPlugins.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetPlugins(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetPluginsArgs;
     * 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 example = NomadFunctions.getPlugins();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getPlugins
     *       Arguments: {}
     * ```
     * 
     * @param argument A collection of arguments for invoking getPlugins.
     * @return A collection of values returned by getPlugins.
     */
    public suspend fun getPlugins(argument: GetPluginsPlainArgs): GetPluginsResult =
        getPluginsResultToKotlin(getPluginsPlain(argument.toJava()).await())

    /**
     * @see [getPlugins].
     * @param type
     * @return A collection of values returned by getPlugins.
     */
    public suspend fun getPlugins(type: String? = null): GetPluginsResult {
        val argument = GetPluginsPlainArgs(
            type = type,
        )
        return getPluginsResultToKotlin(getPluginsPlain(argument.toJava()).await())
    }

    /**
     * @see [getPlugins].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetPluginsPlainArgs].
     * @return A collection of values returned by getPlugins.
     */
    public suspend fun getPlugins(argument: suspend GetPluginsPlainArgsBuilder.() -> Unit): GetPluginsResult {
        val builder = GetPluginsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPluginsResultToKotlin(getPluginsPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of regions available in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * function notImplemented(message: string) {
     *     throw new Error(message);
     * }
     * export = async () => {
     *     const myRegions = await nomad.getRegions({});
     *     const jobs = notImplemented("The template_file data resource is not yet supported.");
     *     const app: nomad.Job[] = [];
     *     for (const range = {value: 0}; range.value < myRegions.regions.length; range.value++) {
     *         app.push(new nomad.Job(`app-${range.value}`, {jobspec: jobs[range.value].rendered}));
     *     }
     * }
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * def not_implemented(msg):
     *     raise NotImplementedError(msg)
     * my_regions = nomad.get_regions()
     * jobs = not_implemented("The template_file data resource is not yet supported.")
     * app = []
     * for range in [{"value": i} for i in range(0, len(my_regions.regions))]:
     *     app.append(nomad.Job(f"app-{range['value']}", jobspec=jobs[range["value"]]["rendered"]))
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using System.Threading.Tasks;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * object NotImplemented(string errorMessage)
     * {
     *     throw new System.NotImplementedException(errorMessage);
     * }
     * return await Deployment.RunAsync(async() =>
     * {
     *     var myRegions = await Nomad.GetRegions.InvokeAsync();
     *     var jobs = NotImplemented("The template_file data resource is not yet supported.");
     *     var app = new List();
     *     for (var rangeIndex = 0; rangeIndex < myRegions.Regions.Length; rangeIndex++)
     *     {
     *         var range = new { Value = rangeIndex };
     *         app.Add(new Nomad.Job($"app-{range.Value}", new()
     *         {
     *             Jobspec = jobs[range.Value].Rendered,
     *         }));
     *     }
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func notImplemented(message string) pulumi.AnyOutput {
     * 	panic(message)
     * }
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		myRegions, err := nomad.GetRegions(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		jobs := notImplemented("The template_file data resource is not yet supported.")
     * 		var app []*nomad.Job
     * 		for index := 0; index < int(len(myRegions.Regions)); index++ {
     * 			key0 := index
     * 			val0 := index
     * 			__res, err := nomad.NewJob(ctx, fmt.Sprintf("app-%v", key0), &nomad.JobArgs{
     * 				Jobspec: jobs[val0].Rendered,
     * 			})
     * 			if err != nil {
     * 				return err
     * 			}
     * 			app = append(app, __res)
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * 
     * @param argument Retrieve a list of regions available in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * function notImplemented(message: string) {
     *     throw new Error(message);
     * }
     * export = async () => {
     *     const myRegions = await nomad.getRegions({});
     *     const jobs = notImplemented("The template_file data resource is not yet supported.");
     *     const app: nomad.Job[] = [];
     *     for (const range = {value: 0}; range.value < myRegions.regions.length; range.value++) {
     *         app.push(new nomad.Job(`app-${range.value}`, {jobspec: jobs[range.value].rendered}));
     *     }
     * }
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * def not_implemented(msg):
     *     raise NotImplementedError(msg)
     * my_regions = nomad.get_regions()
     * jobs = not_implemented("The template_file data resource is not yet supported.")
     * app = []
     * for range in [{"value": i} for i in range(0, len(my_regions.regions))]:
     *     app.append(nomad.Job(f"app-{range['value']}", jobspec=jobs[range["value"]]["rendered"]))
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using System.Threading.Tasks;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * object NotImplemented(string errorMessage)
     * {
     *     throw new System.NotImplementedException(errorMessage);
     * }
     * return await Deployment.RunAsync(async() =>
     * {
     *     var myRegions = await Nomad.GetRegions.InvokeAsync();
     *     var jobs = NotImplemented("The template_file data resource is not yet supported.");
     *     var app = new List();
     *     for (var rangeIndex = 0; rangeIndex < myRegions.Regions.Length; rangeIndex++)
     *     {
     *         var range = new { Value = rangeIndex };
     *         app.Add(new Nomad.Job($"app-{range.Value}", new()
     *         {
     *             Jobspec = jobs[range.Value].Rendered,
     *         }));
     *     }
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func notImplemented(message string) pulumi.AnyOutput {
     * 	panic(message)
     * }
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		myRegions, err := nomad.GetRegions(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		jobs := notImplemented("The template_file data resource is not yet supported.")
     * 		var app []*nomad.Job
     * 		for index := 0; index < int(len(myRegions.Regions)); index++ {
     * 			key0 := index
     * 			val0 := index
     * 			__res, err := nomad.NewJob(ctx, fmt.Sprintf("app-%v", key0), &nomad.JobArgs{
     * 				Jobspec: jobs[val0].Rendered,
     * 			})
     * 			if err != nil {
     * 				return err
     * 			}
     * 			app = append(app, __res)
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * 
     * @return A collection of values returned by getRegions.
     */
    public suspend fun getRegions(): GetRegionsResult =
        getRegionsResultToKotlin(getRegionsPlain().await())

    /**
     * Retrieve a list of Scaling Policies.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getScalingPolicies({
     *     jobId: "webapp",
     *     type: "horizontal",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_scaling_policies(job_id="webapp",
     *     type="horizontal")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetScalingPolicies.Invoke(new()
     *     {
     *         JobId = "webapp",
     *         Type = "horizontal",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetScalingPolicies(ctx, &nomad.GetScalingPoliciesArgs{
     * 			JobId: pulumi.StringRef("webapp"),
     * 			Type:  pulumi.StringRef("horizontal"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetScalingPoliciesArgs;
     * 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 example = NomadFunctions.getScalingPolicies(GetScalingPoliciesArgs.builder()
     *             .jobId("webapp")
     *             .type("horizontal")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getScalingPolicies
     *       Arguments:
     *         jobId: webapp
     *         type: horizontal
     * ```
     * 
     * @param argument A collection of arguments for invoking getScalingPolicies.
     * @return A collection of values returned by getScalingPolicies.
     */
    public suspend fun getScalingPolicies(argument: GetScalingPoliciesPlainArgs): GetScalingPoliciesResult =
        getScalingPoliciesResultToKotlin(getScalingPoliciesPlain(argument.toJava()).await())

    /**
     * @see [getScalingPolicies].
     * @param jobId `(string)` - An optional string to filter scaling policies based on the target job. If not provided, policies for all jobs are returned.
     * @param type `(string)` - An optional string to filter scaling policies based on policy type. If not provided, policies of all types are returned.
     * @return A collection of values returned by getScalingPolicies.
     */
    public suspend fun getScalingPolicies(jobId: String? = null, type: String? = null): GetScalingPoliciesResult {
        val argument = GetScalingPoliciesPlainArgs(
            jobId = jobId,
            type = type,
        )
        return getScalingPoliciesResultToKotlin(getScalingPoliciesPlain(argument.toJava()).await())
    }

    /**
     * @see [getScalingPolicies].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetScalingPoliciesPlainArgs].
     * @return A collection of values returned by getScalingPolicies.
     */
    public suspend fun getScalingPolicies(argument: suspend GetScalingPoliciesPlainArgsBuilder.() -> Unit): GetScalingPoliciesResult {
        val builder = GetScalingPoliciesPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getScalingPoliciesResultToKotlin(getScalingPoliciesPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a Scaling Policy.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getScalingPolicy({
     *     id: "ad19848d-1921-179c-affa-244a3543be88",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_scaling_policy(id="ad19848d-1921-179c-affa-244a3543be88")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetScalingPolicy.Invoke(new()
     *     {
     *         Id = "ad19848d-1921-179c-affa-244a3543be88",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetScalingPolicy(ctx, &nomad.GetScalingPolicyArgs{
     * 			Id: "ad19848d-1921-179c-affa-244a3543be88",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetScalingPolicyArgs;
     * 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 example = NomadFunctions.getScalingPolicy(GetScalingPolicyArgs.builder()
     *             .id("ad19848d-1921-179c-affa-244a3543be88")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getScalingPolicy
     *       Arguments:
     *         id: ad19848d-1921-179c-affa-244a3543be88
     * ```
     * 
     * @param argument A collection of arguments for invoking getScalingPolicy.
     * @return A collection of values returned by getScalingPolicy.
     */
    public suspend fun getScalingPolicy(argument: GetScalingPolicyPlainArgs): GetScalingPolicyResult =
        getScalingPolicyResultToKotlin(getScalingPolicyPlain(argument.toJava()).await())

    /**
     * @see [getScalingPolicy].
     * @param id `(string: )` - The  ID of the scaling policy.
     * @return A collection of values returned by getScalingPolicy.
     */
    public suspend fun getScalingPolicy(id: String): GetScalingPolicyResult {
        val argument = GetScalingPolicyPlainArgs(
            id = id,
        )
        return getScalingPolicyResultToKotlin(getScalingPolicyPlain(argument.toJava()).await())
    }

    /**
     * @see [getScalingPolicy].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetScalingPolicyPlainArgs].
     * @return A collection of values returned by getScalingPolicy.
     */
    public suspend fun getScalingPolicy(argument: suspend GetScalingPolicyPlainArgsBuilder.() -> Unit): GetScalingPolicyResult {
        val builder = GetScalingPolicyPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getScalingPolicyResultToKotlin(getScalingPolicyPlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve the cluster's [scheduler configuration](https://www.nomadproject.io/api-docs/operator#sample-response-3).
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const global = nomad.getSchedulerPolicy({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * global_ = nomad.get_scheduler_policy()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var @global = Nomad.GetSchedulerPolicy.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetSchedulerPolicy(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 global = NomadFunctions.getSchedulerPolicy();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   global:
     *     fn::invoke:
     *       Function: nomad:getSchedulerPolicy
     *       Arguments: {}
     * ```
     * 
     * @param argument Retrieve the cluster's [scheduler configuration](https://www.nomadproject.io/api-docs/operator#sample-response-3).
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const global = nomad.getSchedulerPolicy({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * global_ = nomad.get_scheduler_policy()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var @global = Nomad.GetSchedulerPolicy.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetSchedulerPolicy(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.NomadFunctions;
     * 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 global = NomadFunctions.getSchedulerPolicy();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   global:
     *     fn::invoke:
     *       Function: nomad:getSchedulerPolicy
     *       Arguments: {}
     * ```
     * 
     * @return A collection of values returned by getSchedulerPolicy.
     */
    public suspend fun getSchedulerPolicy(): GetSchedulerPolicyResult =
        getSchedulerPolicyResultToKotlin(getSchedulerPolicyPlain().await())

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = new nomad.Variable("example", {path: "path/of/existing/variable"});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.Variable("example", path="path/of/existing/variable")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Nomad.Variable("example", new()
     *     {
     *         Path = "path/of/existing/variable",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.NewVariable(ctx, "example", &nomad.VariableArgs{
     * 			Path: pulumi.String("path/of/existing/variable"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.nomad.Variable;
     * import com.pulumi.nomad.VariableArgs;
     * 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) {
     *         var example = new Variable("example", VariableArgs.builder()
     *             .path("path/of/existing/variable")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: nomad:Variable
     *     properties:
     *       path: path/of/existing/variable
     * ```
     * 
     * @param argument A collection of arguments for invoking getVariable.
     * @return A collection of values returned by getVariable.
     */
    public suspend fun getVariable(argument: GetVariablePlainArgs): GetVariableResult =
        getVariableResultToKotlin(getVariablePlain(argument.toJava()).await())

    /**
     * @see [getVariable].
     * @param namespace `(string: "default")` - The namepsace in which the variable exists.
     * @param path `(string)` - Path to the existing variable.
     * @return A collection of values returned by getVariable.
     */
    public suspend fun getVariable(namespace: String? = null, path: String): GetVariableResult {
        val argument = GetVariablePlainArgs(
            namespace = namespace,
            path = path,
        )
        return getVariableResultToKotlin(getVariablePlain(argument.toJava()).await())
    }

    /**
     * @see [getVariable].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetVariablePlainArgs].
     * @return A collection of values returned by getVariable.
     */
    public suspend fun getVariable(argument: suspend GetVariablePlainArgsBuilder.() -> Unit): GetVariableResult {
        val builder = GetVariablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVariableResultToKotlin(getVariablePlain(builtArgument.toJava()).await())
    }

    /**
     * Retrieve a list of volumes in Nomad.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as nomad from "@pulumi/nomad";
     * const example = nomad.getVolumes({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_nomad as nomad
     * example = nomad.get_volumes()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Nomad = Pulumi.Nomad;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Nomad.GetVolumes.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"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 {
     * 		_, err := nomad.GetVolumes(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * 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.inputs.GetVolumesArgs;
     * 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 example = NomadFunctions.getVolumes();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: nomad:getVolumes
     *       Arguments: {}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVolumes.
     * @return A collection of values returned by getVolumes.
     */
    public suspend fun getVolumes(argument: GetVolumesPlainArgs): GetVolumesResult =
        getVolumesResultToKotlin(getVolumesPlain(argument.toJava()).await())

    /**
     * @see [getVolumes].
     * @param namespace `(string: "default")` Nomad namespace.
     * @param nodeId `(string: optional)` Volume node filter.
     * @param pluginId `(string: optional)` Plugin ID filter.
     * @param type `(string: "csi")` Volume type (currently only supports `csi`)
     * @return A collection of values returned by getVolumes.
     */
    public suspend fun getVolumes(
        namespace: String? = null,
        nodeId: String? = null,
        pluginId: String? = null,
        type: String? = null,
    ): GetVolumesResult {
        val argument = GetVolumesPlainArgs(
            namespace = namespace,
            nodeId = nodeId,
            pluginId = pluginId,
            type = type,
        )
        return getVolumesResultToKotlin(getVolumesPlain(argument.toJava()).await())
    }

    /**
     * @see [getVolumes].
     * @param argument Builder for [com.pulumi.nomad.kotlin.inputs.GetVolumesPlainArgs].
     * @return A collection of values returned by getVolumes.
     */
    public suspend fun getVolumes(argument: suspend GetVolumesPlainArgsBuilder.() -> Unit): GetVolumesResult {
        val builder = GetVolumesPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVolumesResultToKotlin(getVolumesPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy