{
    "name": "nomad",
    "description": "A Pulumi package for creating and managing nomad cloud resources.",
    "keywords": [
        "pulumi",
        "nomad"
    ],
    "homepage": "https://pulumi.io",
    "license": "Apache-2.0",
    "attribution": "This Pulumi package is based on the [`nomad` Terraform Provider](https://github.com/hashicorp/terraform-provider-nomad).",
    "repository": "https://github.com/pulumi/pulumi-nomad",
    "meta": {
        "moduleFormat": "(.*)(?:/[^/]*)"
    },
    "language": {
        "csharp": {
            "packageReferences": {
                "Pulumi": "3.*"
            },
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true
        },
        "go": {
            "importBasePath": "github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad",
            "generateResourceContainerTypes": true,
            "generateExtraInputTypes": true,
            "respectSchemaVersion": true
        },
        "nodejs": {
            "packageDescription": "A Pulumi package for creating and managing nomad cloud resources.",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-nomad)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-nomad` repo](https://github.com/pulumi/pulumi-nomad/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-nomad` repo](https://github.com/hashicorp/terraform-provider-nomad/issues).",
            "devDependencies": {
                "@types/mime": "^2.0.0",
                "@types/node": "^10.0.0"
            },
            "compatibility": "tfbridge20",
            "disableUnionOutputTypes": true,
            "respectSchemaVersion": true
        },
        "python": {
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-nomad)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-nomad` repo](https://github.com/pulumi/pulumi-nomad/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-nomad` repo](https://github.com/hashicorp/terraform-provider-nomad/issues).",
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true,
            "pyproject": {
                "enabled": true
            }
        }
    },
    "config": {
        "variables": {
            "address": {
                "type": "string",
                "description": "URL of the root of the target Nomad agent."
            },
            "authJwt": {
                "$ref": "#/types/nomad:config/authJwt:authJwt",
                "description": "Authenticates to Nomad using a JWT authentication method."
            },
            "caFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "caPem": {
                "type": "string",
                "description": "PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "certFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "certPem": {
                "type": "string",
                "description": "PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "headers": {
                "type": "array",
                "items": {
                    "$ref": "#/types/nomad:config/headers:headers"
                },
                "description": "The headers to send with each Nomad request.",
                "secret": true
            },
            "httpAuth": {
                "type": "string",
                "description": "HTTP basic auth configuration.",
                "secret": true
            },
            "ignoreEnvVars": {
                "type": "object",
                "additionalProperties": {
                    "type": "boolean"
                },
                "description": "A set of environment variables that are ignored by the provider when configuring the Nomad API client."
            },
            "keyFile": {
                "type": "string",
                "description": "A path to a PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified."
            },
            "keyPem": {
                "type": "string",
                "description": "PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified.",
                "secret": true
            },
            "region": {
                "type": "string",
                "description": "Region of the target Nomad agent."
            },
            "secretId": {
                "type": "string",
                "description": "ACL token secret for API requests.",
                "secret": true
            },
            "skipVerify": {
                "type": "boolean",
                "description": "Skip TLS verification on client side."
            }
        }
    },
    "types": {
        "nomad:config/authJwt:authJwt": {
            "properties": {
                "authMethod": {
                    "type": "string",
                    "description": "The name of the auth method to use for login.\n"
                },
                "loginToken": {
                    "type": "string",
                    "description": "The externally issued authentication token to be exchanged for a Nomad ACL Token.\n",
                    "secret": true
                }
            },
            "type": "object",
            "required": [
                "authMethod",
                "loginToken"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:config/headers:headers": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The header name\n"
                },
                "value": {
                    "type": "string",
                    "description": "The header value\n",
                    "secret": true
                }
            },
            "type": "object",
            "required": [
                "name",
                "value"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/AclAuthMethodConfig:AclAuthMethodConfig": {
            "properties": {
                "allowedRedirectUris": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - A list of allowed values\nthat can be used for the redirect URI.\n"
                },
                "boundAudiences": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - List of auth claims that are\nvalid for login.\n"
                },
                "boundIssuers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The value against which to match\nthe iss claim in a JWT.\n"
                },
                "claimMappings": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Mappings of claims (key) that will be copied to a metadata field (value).\n"
                },
                "clockSkewLeeway": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Duration of leeway when validating\nall claims in the form of a time duration such as \"5m\" or \"1h\".\n"
                },
                "discoveryCaPems": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - PEM encoded CA certs for use\nby the TLS client used to talk with the OIDC Discovery URL.\n"
                },
                "expirationLeeway": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Duration of leeway when validating\nexpiration of a JWT in the form of a time duration such as \"5m\" or \"1h\".\n"
                },
                "jwksCaCert": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - PEM encoded CA cert for use by the \nTLS client used to talk with the JWKS server.\n"
                },
                "jwksUrl": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - JSON Web Key Sets url for authenticating\nsignatures.\n"
                },
                "jwtValidationPubKeys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - List of PEM-encoded \npublic keys to use to authenticate signatures locally.\n"
                },
                "listClaimMappings": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Mappings of list claims (key) that will be copied to a metadata field (value).\n"
                },
                "notBeforeLeeway": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Duration of leeway when validating\nnot before values of a token in the form of a time duration such as \"5m\" or \"1h\".\n"
                },
                "oidcClientAssertion": {
                    "$ref": "#/types/nomad:index/AclAuthMethodConfigOidcClientAssertion:AclAuthMethodConfigOidcClientAssertion",
                    "description": "`(OIDCClientAssertion: \u003coptional\u003e)` - Optionally\nsend a signed JWT (\"[private key jwt][]\") as a client assertion to the OIDC\nprovider. Browse to the [OIDC concepts][concepts-assertions] page to learn\nmore.\n"
                },
                "oidcClientId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The OAuth Client ID configured\nwith the OIDC provider.\n"
                },
                "oidcClientSecret": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The OAuth Client Secret\nconfigured with the OIDC provider.\n",
                    "secret": true
                },
                "oidcDisableUserinfo": {
                    "type": "boolean",
                    "description": "`(bool: false)` - When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Nomad will\nnot make a request to the identity provider to get OIDC `UserInfo`.\nYou may wish to set this if your identity provider doesn't send any\nadditional claims from the `UserInfo` endpoint.\n"
                },
                "oidcDiscoveryUrl": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The OIDC Discovery URL,\nwithout any .well-known component (base path).\n"
                },
                "oidcEnablePkce": {
                    "type": "boolean",
                    "description": "`(bool: false)` - When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, Nomad will include\n[PKCE][] verification in the auth flow. Even with PKCE enabled in Nomad,\nyou may still need to enable it in your OIDC provider.\n"
                },
                "oidcScopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - List of OIDC scopes.\n"
                },
                "signingAlgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - A list of supported signing\nalgorithms.\n"
                },
                "verboseLogging": {
                    "type": "boolean",
                    "description": "Enable OIDC verbose logging on the Nomad server.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/AclAuthMethodConfigOidcClientAssertion:AclAuthMethodConfigOidcClientAssertion": {
            "properties": {
                "audiences": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: optional)` - Who processes the assertion.\nDefaults to the auth method's \u003cspan pulumi-lang-nodejs=\"`oidcDiscoveryUrl`\" pulumi-lang-dotnet=\"`OidcDiscoveryUrl`\" pulumi-lang-go=\"`oidcDiscoveryUrl`\" pulumi-lang-python=\"`oidc_discovery_url`\" pulumi-lang-yaml=\"`oidcDiscoveryUrl`\" pulumi-lang-java=\"`oidcDiscoveryUrl`\"\u003e`oidcDiscoveryUrl`\u003c/span\u003e.\n"
                },
                "extraHeaders": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` - Add to the JWT headers,\nalongside \"kid\" and \"type\". Setting the \"kid\" header here is not allowed;\nuse `private_key.key_id`.\n"
                },
                "keyAlgorithm": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` is the key's algorithm.\nIts default values are based on the \u003cspan pulumi-lang-nodejs=\"`keySource`\" pulumi-lang-dotnet=\"`KeySource`\" pulumi-lang-go=\"`keySource`\" pulumi-lang-python=\"`key_source`\" pulumi-lang-yaml=\"`keySource`\" pulumi-lang-java=\"`keySource`\"\u003e`keySource`\u003c/span\u003e:\n- \"nomad\": \"RS256\"; this is from Nomad's keyring and must not be changed\n- \u003cspan pulumi-lang-nodejs=\"\"privateKey\"\" pulumi-lang-dotnet=\"\"PrivateKey\"\" pulumi-lang-go=\"\"privateKey\"\" pulumi-lang-python=\"\"private_key\"\" pulumi-lang-yaml=\"\"privateKey\"\" pulumi-lang-java=\"\"privateKey\"\"\u003e\"privateKey\"\u003c/span\u003e: \"RS256\"; must be RS256, RS384, or RS512\n- \u003cspan pulumi-lang-nodejs=\"\"clientSecret\"\" pulumi-lang-dotnet=\"\"ClientSecret\"\" pulumi-lang-go=\"\"clientSecret\"\" pulumi-lang-python=\"\"client_secret\"\" pulumi-lang-yaml=\"\"clientSecret\"\" pulumi-lang-java=\"\"clientSecret\"\"\u003e\"clientSecret\"\u003c/span\u003e: \"HS256\"; must be HS256, HS384, or HS512\n"
                },
                "keySource": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Specifies where to get the private\nkey to sign the JWT.\nAvailable sources:\n- \"nomad\": Use current active key in Nomad's keyring\n- \u003cspan pulumi-lang-nodejs=\"\"privateKey\"\" pulumi-lang-dotnet=\"\"PrivateKey\"\" pulumi-lang-go=\"\"privateKey\"\" pulumi-lang-python=\"\"private_key\"\" pulumi-lang-yaml=\"\"privateKey\"\" pulumi-lang-java=\"\"privateKey\"\"\u003e\"privateKey\"\u003c/span\u003e: Use key material in the \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`privateKey`\u003c/span\u003e field\n- \u003cspan pulumi-lang-nodejs=\"\"clientSecret\"\" pulumi-lang-dotnet=\"\"ClientSecret\"\" pulumi-lang-go=\"\"clientSecret\"\" pulumi-lang-python=\"\"client_secret\"\" pulumi-lang-yaml=\"\"clientSecret\"\" pulumi-lang-java=\"\"clientSecret\"\"\u003e\"clientSecret\"\u003c/span\u003e: Use the \u003cspan pulumi-lang-nodejs=\"`oidcClientSecret`\" pulumi-lang-dotnet=\"`OidcClientSecret`\" pulumi-lang-go=\"`oidcClientSecret`\" pulumi-lang-python=\"`oidc_client_secret`\" pulumi-lang-yaml=\"`oidcClientSecret`\" pulumi-lang-java=\"`oidcClientSecret`\"\u003e`oidcClientSecret`\u003c/span\u003e as an HMAC key\n"
                },
                "privateKey": {
                    "$ref": "#/types/nomad:index/AclAuthMethodConfigOidcClientAssertionPrivateKey:AclAuthMethodConfigOidcClientAssertionPrivateKey",
                    "description": "`(OIDCClientAssertionKey: \u003coptional\u003e)` - External key\nto sign the JWT. \u003cspan pulumi-lang-nodejs=\"`keySource`\" pulumi-lang-dotnet=\"`KeySource`\" pulumi-lang-go=\"`keySource`\" pulumi-lang-python=\"`key_source`\" pulumi-lang-yaml=\"`keySource`\" pulumi-lang-java=\"`keySource`\"\u003e`keySource`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"\"privateKey\"\" pulumi-lang-dotnet=\"\"PrivateKey\"\" pulumi-lang-go=\"\"privateKey\"\" pulumi-lang-python=\"\"private_key\"\" pulumi-lang-yaml=\"\"privateKey\"\" pulumi-lang-java=\"\"privateKey\"\"\u003e\"privateKey\"\u003c/span\u003e to enable this.\n"
                }
            },
            "type": "object",
            "required": [
                "keySource"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "audiences",
                        "keyAlgorithm",
                        "keySource"
                    ]
                }
            }
        },
        "nomad:index/AclAuthMethodConfigOidcClientAssertionPrivateKey:AclAuthMethodConfigOidcClientAssertionPrivateKey": {
            "properties": {
                "keyId": {
                    "type": "string",
                    "description": "`(string: optional)` - Becomes the JWT's \"kid\" header.\nMutually exclusive with \u003cspan pulumi-lang-nodejs=\"`pemCert`\" pulumi-lang-dotnet=\"`PemCert`\" pulumi-lang-go=\"`pemCert`\" pulumi-lang-python=\"`pem_cert`\" pulumi-lang-yaml=\"`pemCert`\" pulumi-lang-java=\"`pemCert`\"\u003e`pemCert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pemCertFile`\" pulumi-lang-dotnet=\"`PemCertFile`\" pulumi-lang-go=\"`pemCertFile`\" pulumi-lang-python=\"`pem_cert_file`\" pulumi-lang-yaml=\"`pemCertFile`\" pulumi-lang-java=\"`pemCertFile`\"\u003e`pemCertFile`\u003c/span\u003e.\nAllowed \u003cspan pulumi-lang-nodejs=\"`keyIdHeader`\" pulumi-lang-dotnet=\"`KeyIdHeader`\" pulumi-lang-go=\"`keyIdHeader`\" pulumi-lang-python=\"`key_id_header`\" pulumi-lang-yaml=\"`keyIdHeader`\" pulumi-lang-java=\"`keyIdHeader`\"\u003e`keyIdHeader`\u003c/span\u003e values: \"kid\" (the default)\n"
                },
                "keyIdHeader": {
                    "type": "string",
                    "description": "`(string: optional)` - Which header the provider uses\nto find the public key to verify the signed JWT.\nThe default and allowed values depend on whether you set \u003cspan pulumi-lang-nodejs=\"`keyId`\" pulumi-lang-dotnet=\"`KeyId`\" pulumi-lang-go=\"`keyId`\" pulumi-lang-python=\"`key_id`\" pulumi-lang-yaml=\"`keyId`\" pulumi-lang-java=\"`keyId`\"\u003e`keyId`\u003c/span\u003e,\n\u003cspan pulumi-lang-nodejs=\"`pemCert`\" pulumi-lang-dotnet=\"`PemCert`\" pulumi-lang-go=\"`pemCert`\" pulumi-lang-python=\"`pem_cert`\" pulumi-lang-yaml=\"`pemCert`\" pulumi-lang-java=\"`pemCert`\"\u003e`pemCert`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`pemCertFile`\" pulumi-lang-dotnet=\"`PemCertFile`\" pulumi-lang-go=\"`pemCertFile`\" pulumi-lang-python=\"`pem_cert_file`\" pulumi-lang-yaml=\"`pemCertFile`\" pulumi-lang-java=\"`pemCertFile`\"\u003e`pemCertFile`\u003c/span\u003e. You must set exactly one of those\noptions, so refer to them for their requirements.\n"
                },
                "pemCert": {
                    "type": "string",
                    "description": "`(string: optional)` - An x509 certificate, signed by the\nprivate key or a CA, in pem format. Nomad uses this certificate to\nderive an [x5t#S256][] (or [x5t][]) key_id.\nMutually exclusive with \u003cspan pulumi-lang-nodejs=\"`pemCertFile`\" pulumi-lang-dotnet=\"`PemCertFile`\" pulumi-lang-go=\"`pemCertFile`\" pulumi-lang-python=\"`pem_cert_file`\" pulumi-lang-yaml=\"`pemCertFile`\" pulumi-lang-java=\"`pemCertFile`\"\u003e`pemCertFile`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyId`\" pulumi-lang-dotnet=\"`KeyId`\" pulumi-lang-go=\"`keyId`\" pulumi-lang-python=\"`key_id`\" pulumi-lang-yaml=\"`keyId`\" pulumi-lang-java=\"`keyId`\"\u003e`keyId`\u003c/span\u003e.\nAllowed \u003cspan pulumi-lang-nodejs=\"`keyIdHeader`\" pulumi-lang-dotnet=\"`KeyIdHeader`\" pulumi-lang-go=\"`keyIdHeader`\" pulumi-lang-python=\"`key_id_header`\" pulumi-lang-yaml=\"`keyIdHeader`\" pulumi-lang-java=\"`keyIdHeader`\"\u003e`keyIdHeader`\u003c/span\u003e values: \"x5t\", \"x5t#S256\" (default \"x5t#S256\")\n"
                },
                "pemCertFile": {
                    "type": "string",
                    "description": "`(string: optional)` - An absolute path to an x509\ncertificate on Nomad servers' disk, signed by the private key or a CA,\nin pem format.\nNomad uses this certificate to derive an [x5t#S256][] (or [x5t][])\nheader. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`pemCert`\" pulumi-lang-dotnet=\"`PemCert`\" pulumi-lang-go=\"`pemCert`\" pulumi-lang-python=\"`pem_cert`\" pulumi-lang-yaml=\"`pemCert`\" pulumi-lang-java=\"`pemCert`\"\u003e`pemCert`\u003c/span\u003e and key_id.\nAllowed \u003cspan pulumi-lang-nodejs=\"`keyIdHeader`\" pulumi-lang-dotnet=\"`KeyIdHeader`\" pulumi-lang-go=\"`keyIdHeader`\" pulumi-lang-python=\"`key_id_header`\" pulumi-lang-yaml=\"`keyIdHeader`\" pulumi-lang-java=\"`keyIdHeader`\"\u003e`keyIdHeader`\u003c/span\u003e values: \"x5t\", \"x5t#S256\" (default \"x5t#S256\")\n"
                },
                "pemKey": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - An RSA private key, in pem format.\nIt is used to sign the JWT. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`pemKey`\" pulumi-lang-dotnet=\"`PemKey`\" pulumi-lang-go=\"`pemKey`\" pulumi-lang-python=\"`pem_key`\" pulumi-lang-yaml=\"`pemKey`\" pulumi-lang-java=\"`pemKey`\"\u003e`pemKey`\u003c/span\u003e.\n",
                    "secret": true
                },
                "pemKeyFile": {
                    "type": "string",
                    "description": "`(string: optional)` - An absolute path to a private key\non Nomad servers' disk, in pem format. It is used to sign the JWT.\nMutually exclusive with \u003cspan pulumi-lang-nodejs=\"`pemKeyFile`\" pulumi-lang-dotnet=\"`PemKeyFile`\" pulumi-lang-go=\"`pemKeyFile`\" pulumi-lang-python=\"`pem_key_file`\" pulumi-lang-yaml=\"`pemKeyFile`\" pulumi-lang-java=\"`pemKeyFile`\"\u003e`pemKeyFile`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/AclPolicyJobAcl:AclPolicyJobAcl": {
            "properties": {
                "group": {
                    "type": "string",
                    "description": "Group\n"
                },
                "jobId": {
                    "type": "string",
                    "description": "Job. If empty, the policy applies to all jobs in the namespace.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "Namespace\n"
                },
                "task": {
                    "type": "string",
                    "description": "Task\n"
                }
            },
            "type": "object"
        },
        "nomad:index/AclRolePolicy:AclRolePolicy": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A human-friendly name for this ACL Role.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ]
        },
        "nomad:index/AclTokenRole:AclTokenRole": {
            "properties": {
                "id": {
                    "type": "string",
                    "description": "The ID of the ACL role to link.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \"\")` - A human-friendly name for this token.\n"
                }
            },
            "type": "object",
            "required": [
                "id"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "id",
                        "name"
                    ]
                }
            }
        },
        "nomad:index/CsiVolumeCapability:CsiVolumeCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The storage API that will be used by the volume. Possible values are:\n- `block-device`\n- `file-system`\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/CsiVolumeMountOptions:CsiVolumeMountOptions": {
            "properties": {
                "fsType": {
                    "type": "string",
                    "description": "`(string: optional)` - The file system type.\n"
                },
                "mountFlags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`[]string: optional` - The flags passed to \u003cspan pulumi-lang-nodejs=\"`mount`\" pulumi-lang-dotnet=\"`Mount`\" pulumi-lang-go=\"`mount`\" pulumi-lang-python=\"`mount`\" pulumi-lang-yaml=\"`mount`\" pulumi-lang-java=\"`mount`\"\u003e`mount`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/CsiVolumeRegistrationCapability:CsiVolumeRegistrationCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The storage API that will be used by the volume. Possible values are:\n- `block-device`\n- `file-system`\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/CsiVolumeRegistrationMountOptions:CsiVolumeRegistrationMountOptions": {
            "properties": {
                "fsType": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The file system type.\n"
                },
                "mountFlags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The flags passed to \u003cspan pulumi-lang-nodejs=\"`mount`\" pulumi-lang-dotnet=\"`Mount`\" pulumi-lang-go=\"`mount`\" pulumi-lang-python=\"`mount`\" pulumi-lang-yaml=\"`mount`\" pulumi-lang-java=\"`mount`\"\u003e`mount`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/CsiVolumeRegistrationTopology:CsiVolumeRegistrationTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Define the attributes for the topology request.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "segments"
                    ]
                }
            }
        },
        "nomad:index/CsiVolumeRegistrationTopologyRequest:CsiVolumeRegistrationTopologyRequest": {
            "properties": {
                "required": {
                    "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopologyRequestRequired:CsiVolumeRegistrationTopologyRequestRequired",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Required topologies indicate that the volume must be created in a location accessible from all the listed topologies.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "nomad:index/CsiVolumeRegistrationTopologyRequestRequired:CsiVolumeRegistrationTopologyRequestRequired": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopologyRequestRequiredTopology:CsiVolumeRegistrationTopologyRequestRequiredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/CsiVolumeRegistrationTopologyRequestRequiredTopology:CsiVolumeRegistrationTopologyRequestRequiredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define attributes for the topology request.\n"
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/CsiVolumeTopology:CsiVolumeTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Define the attributes for the topology request.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "segments"
                    ]
                }
            }
        },
        "nomad:index/CsiVolumeTopologyRequest:CsiVolumeTopologyRequest": {
            "properties": {
                "preferred": {
                    "$ref": "#/types/nomad:index/CsiVolumeTopologyRequestPreferred:CsiVolumeTopologyRequestPreferred",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Preferred topologies indicate that the volume should be created in a location accessible from some of the listed topologies.\n",
                    "willReplaceOnChanges": true
                },
                "required": {
                    "$ref": "#/types/nomad:index/CsiVolumeTopologyRequestRequired:CsiVolumeTopologyRequestRequired",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Required topologies indicate that the volume must be created in a location accessible from all the listed topologies.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "nomad:index/CsiVolumeTopologyRequestPreferred:CsiVolumeTopologyRequestPreferred": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeTopologyRequestPreferredTopology:CsiVolumeTopologyRequestPreferredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/CsiVolumeTopologyRequestPreferredTopology:CsiVolumeTopologyRequestPreferredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define the attributes for the topology request.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/CsiVolumeTopologyRequestRequired:CsiVolumeTopologyRequestRequired": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeTopologyRequestRequiredTopology:CsiVolumeTopologyRequestRequiredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/CsiVolumeTopologyRequestRequiredTopology:CsiVolumeTopologyRequestRequiredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define the attributes for the topology request.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/DynamicHostVolumeCapability:DynamicHostVolumeCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string)` - How the volume can be mounted by\nallocations. Refer to the [\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e][] documentation for details.\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string)` - The storage API that will be used by the\nvolume. Refer to the [\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e][] documentation.\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/DynamicHostVolumeConstraint:DynamicHostVolumeConstraint": {
            "properties": {
                "attribute": {
                    "type": "string",
                    "description": "`(string)` - The [node attribute][] to check for the constraint.\n"
                },
                "operator": {
                    "type": "string",
                    "description": "`(string)`- The operator to use in the comparison.\n"
                },
                "value": {
                    "type": "string",
                    "description": "`(string)` - The value of the attribute to compare against.\n"
                }
            },
            "type": "object",
            "required": [
                "attribute"
            ]
        },
        "nomad:index/DynamicHostVolumeRegistrationCapability:DynamicHostVolumeRegistrationCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string)` - How the volume can be mounted by\nallocations. Refer to the [\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e][] documentation for details.\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string)` - The storage API that will be used by the\nvolume. Refer to the [\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e][] documentation.\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/DynamicHostVolumeRegistrationConstraint:DynamicHostVolumeRegistrationConstraint": {
            "properties": {
                "attribute": {
                    "type": "string",
                    "description": "An attribute to check to constrain volume placement\n"
                },
                "operator": {
                    "type": "string",
                    "description": "The operator to use for comparison\n"
                },
                "value": {
                    "type": "string",
                    "description": "The requested value of the attribute\n"
                }
            },
            "type": "object",
            "required": [
                "attribute"
            ]
        },
        "nomad:index/ExternalVolumeCapability:ExternalVolumeCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The storage API that will be used by the volume. Possible values are:\n- `block-device`\n- `file-system`\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/ExternalVolumeMountOptions:ExternalVolumeMountOptions": {
            "properties": {
                "fsType": {
                    "type": "string",
                    "description": "`(string: optional)` - The file system type.\n"
                },
                "mountFlags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`[]string: optional` - The flags passed to \u003cspan pulumi-lang-nodejs=\"`mount`\" pulumi-lang-dotnet=\"`Mount`\" pulumi-lang-go=\"`mount`\" pulumi-lang-python=\"`mount`\" pulumi-lang-yaml=\"`mount`\" pulumi-lang-java=\"`mount`\"\u003e`mount`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/ExternalVolumeTopology:ExternalVolumeTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Define the attributes for the topology request.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "segments"
                    ]
                }
            }
        },
        "nomad:index/ExternalVolumeTopologyRequest:ExternalVolumeTopologyRequest": {
            "properties": {
                "preferred": {
                    "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequestPreferred:ExternalVolumeTopologyRequestPreferred",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Preferred topologies indicate that the volume should be created in a location accessible from some of the listed topologies.\n",
                    "willReplaceOnChanges": true
                },
                "required": {
                    "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequestRequired:ExternalVolumeTopologyRequestRequired",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Required topologies indicate that the volume must be created in a location accessible from all the listed topologies.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "nomad:index/ExternalVolumeTopologyRequestPreferred:ExternalVolumeTopologyRequestPreferred": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequestPreferredTopology:ExternalVolumeTopologyRequestPreferredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/ExternalVolumeTopologyRequestPreferredTopology:ExternalVolumeTopologyRequestPreferredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define the attributes for the topology request.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/ExternalVolumeTopologyRequestRequired:ExternalVolumeTopologyRequestRequired": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequestRequiredTopology:ExternalVolumeTopologyRequestRequiredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/ExternalVolumeTopologyRequestRequiredTopology:ExternalVolumeTopologyRequestRequiredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define the attributes for the topology request.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/JobConstraint:JobConstraint": {
            "properties": {
                "ltarget": {
                    "type": "string",
                    "description": "`(string)` - Attribute being constrained.\n"
                },
                "operand": {
                    "type": "string",
                    "description": "`(string)` - Operator used to compare the attribute to the constraint.\n"
                },
                "rtarget": {
                    "type": "string",
                    "description": "`(string)` - Constraint value.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "ltarget",
                        "operand",
                        "rtarget"
                    ]
                }
            }
        },
        "nomad:index/JobHcl2:JobHcl2": {
            "properties": {
                "allowFs": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to be able to use\nHCL2 filesystem functions\n"
                },
                "vars": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Additional variables to use when templating the job with HCL2\n"
                }
            },
            "type": "object"
        },
        "nomad:index/JobPeriodicConfig:JobPeriodicConfig": {
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the periodic job is enabled. When disabled, scheduled runs and force launches are prevented.\n"
                },
                "prohibitOverlap": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether this job should wait until previous instances of the same job have completed before launching again.\n"
                },
                "spec": {
                    "type": "string",
                    "description": "`(string)` - Cron expression configuring the interval at which the job is launched.\n"
                },
                "specType": {
                    "type": "string",
                    "description": "`(string)` - Type of periodic specification, such as \u003cspan pulumi-lang-nodejs=\"`cron`\" pulumi-lang-dotnet=\"`Cron`\" pulumi-lang-go=\"`cron`\" pulumi-lang-python=\"`cron`\" pulumi-lang-yaml=\"`cron`\" pulumi-lang-java=\"`cron`\"\u003e`cron`\u003c/span\u003e.\n"
                },
                "timezone": {
                    "type": "string",
                    "description": "`(string)` - Time zone used to evaluate the next launch interval.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "enabled",
                        "prohibitOverlap",
                        "spec",
                        "specType",
                        "timezone"
                    ]
                }
            }
        },
        "nomad:index/JobTaskGroup:JobTaskGroup": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(integer)` - Task group count.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of strings)` - Task group metadata.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - Volume name.\n"
                },
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobTaskGroupTask:JobTaskGroupTask"
                    },
                    "description": "`(list of maps)` - Tasks in the task group.\n"
                },
                "updateStrategies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobTaskGroupUpdateStrategy:JobTaskGroupUpdateStrategy"
                    },
                    "description": "`(list of maps)` - Effective update strategy for the task group.\n"
                },
                "volumes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobTaskGroupVolume:JobTaskGroupVolume"
                    },
                    "description": "`(list of maps)` - Volume requests for the task group.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "count",
                        "meta",
                        "name",
                        "tasks",
                        "updateStrategies",
                        "volumes"
                    ]
                }
            }
        },
        "nomad:index/JobTaskGroupTask:JobTaskGroupTask": {
            "properties": {
                "driver": {
                    "type": "string",
                    "description": "`(string)` - Task driver.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of strings)` - Task group metadata.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - Volume name.\n"
                },
                "volumeMounts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobTaskGroupTaskVolumeMount:JobTaskGroupTaskVolumeMount"
                    },
                    "description": "`(list of maps)` - Task volume mounts.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "driver",
                        "meta",
                        "name",
                        "volumeMounts"
                    ]
                }
            }
        },
        "nomad:index/JobTaskGroupTaskVolumeMount:JobTaskGroupTaskVolumeMount": {
            "properties": {
                "destination": {
                    "type": "string",
                    "description": "`(string)` - Destination path inside the task.\n"
                },
                "readOnly": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the volume is read-only.\n"
                },
                "volume": {
                    "type": "string",
                    "description": "`(string)` - Volume name.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "destination",
                        "readOnly",
                        "volume"
                    ]
                }
            }
        },
        "nomad:index/JobTaskGroupUpdateStrategy:JobTaskGroupUpdateStrategy": {
            "properties": {
                "autoRevert": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the job should automatically revert to the last stable job on deployment failure.\n"
                },
                "canary": {
                    "type": "integer",
                    "description": "`(integer)` - Number of canary allocations created before destructive updates continue.\n"
                },
                "healthCheck": {
                    "type": "string",
                    "description": "`(string)` - Mechanism used to determine allocation health: \u003cspan pulumi-lang-nodejs=\"`checks`\" pulumi-lang-dotnet=\"`Checks`\" pulumi-lang-go=\"`checks`\" pulumi-lang-python=\"`checks`\" pulumi-lang-yaml=\"`checks`\" pulumi-lang-java=\"`checks`\"\u003e`checks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`taskStates`\" pulumi-lang-dotnet=\"`TaskStates`\" pulumi-lang-go=\"`taskStates`\" pulumi-lang-python=\"`task_states`\" pulumi-lang-yaml=\"`taskStates`\" pulumi-lang-java=\"`taskStates`\"\u003e`taskStates`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"
                },
                "healthyDeadline": {
                    "type": "string",
                    "description": "`(string)` - Deadline by which the allocation must become healthy before it is marked unhealthy.\n"
                },
                "maxParallel": {
                    "type": "integer",
                    "description": "`(integer)` - Number of allocations within a task group that can be destructively updated at the same time. Setting \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e forces updates instead of deployments.\n"
                },
                "minHealthyTime": {
                    "type": "string",
                    "description": "`(string)` - Minimum time the allocation must be in the healthy state before further updates can proceed.\n"
                },
                "stagger": {
                    "type": "string",
                    "description": "`(string)` - Delay between each set of \u003cspan pulumi-lang-nodejs=\"`maxParallel`\" pulumi-lang-dotnet=\"`MaxParallel`\" pulumi-lang-go=\"`maxParallel`\" pulumi-lang-python=\"`max_parallel`\" pulumi-lang-yaml=\"`maxParallel`\" pulumi-lang-java=\"`maxParallel`\"\u003e`maxParallel`\u003c/span\u003e updates when updating system jobs.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "autoRevert",
                        "canary",
                        "healthCheck",
                        "healthyDeadline",
                        "maxParallel",
                        "minHealthyTime",
                        "stagger"
                    ]
                }
            }
        },
        "nomad:index/JobTaskGroupVolume:JobTaskGroupVolume": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "`(string)` - Volume name.\n"
                },
                "readOnly": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the volume is read-only.\n"
                },
                "source": {
                    "type": "string",
                    "description": "`(string)` - Volume source.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` - Volume type.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "name",
                        "readOnly",
                        "source",
                        "type"
                    ]
                }
            }
        },
        "nomad:index/JobUpdateStrategy:JobUpdateStrategy": {
            "properties": {
                "autoRevert": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the job should automatically revert to the last stable job on deployment failure.\n"
                },
                "canary": {
                    "type": "integer",
                    "description": "`(integer)` - Number of canary allocations created before destructive updates continue.\n"
                },
                "healthCheck": {
                    "type": "string",
                    "description": "`(string)` - Mechanism used to determine allocation health: \u003cspan pulumi-lang-nodejs=\"`checks`\" pulumi-lang-dotnet=\"`Checks`\" pulumi-lang-go=\"`checks`\" pulumi-lang-python=\"`checks`\" pulumi-lang-yaml=\"`checks`\" pulumi-lang-java=\"`checks`\"\u003e`checks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`taskStates`\" pulumi-lang-dotnet=\"`TaskStates`\" pulumi-lang-go=\"`taskStates`\" pulumi-lang-python=\"`task_states`\" pulumi-lang-yaml=\"`taskStates`\" pulumi-lang-java=\"`taskStates`\"\u003e`taskStates`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"
                },
                "healthyDeadline": {
                    "type": "string",
                    "description": "`(string)` - Deadline by which the allocation must become healthy before it is marked unhealthy.\n"
                },
                "maxParallel": {
                    "type": "integer",
                    "description": "`(integer)` - Number of allocations within a task group that can be destructively updated at the same time. Setting \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e forces updates instead of deployments.\n"
                },
                "minHealthyTime": {
                    "type": "string",
                    "description": "`(string)` - Minimum time the allocation must be in the healthy state before further updates can proceed.\n"
                },
                "stagger": {
                    "type": "string",
                    "description": "`(string)` - Delay between each set of \u003cspan pulumi-lang-nodejs=\"`maxParallel`\" pulumi-lang-dotnet=\"`MaxParallel`\" pulumi-lang-go=\"`maxParallel`\" pulumi-lang-python=\"`max_parallel`\" pulumi-lang-yaml=\"`maxParallel`\" pulumi-lang-java=\"`maxParallel`\"\u003e`maxParallel`\u003c/span\u003e updates when updating system jobs.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "autoRevert",
                        "canary",
                        "healthCheck",
                        "healthyDeadline",
                        "maxParallel",
                        "minHealthyTime",
                        "stagger"
                    ]
                }
            }
        },
        "nomad:index/NamespaceCapabilities:NamespaceCapabilities": {
            "properties": {
                "disabledNetworkModes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - Network modes disabled for the namespace.\n"
                },
                "disabledTaskDrivers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - Task drivers disabled for the namespace.\n"
                },
                "enabledNetworkModes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - Network modes enabled for the namespace.\n"
                },
                "enabledTaskDrivers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - Task drivers enabled for the namespace.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/NamespaceConsulConfig:NamespaceConsulConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of Consul clusters allowed to be used in this namespace. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`denied`\" pulumi-lang-dotnet=\"`Denied`\" pulumi-lang-go=\"`denied`\" pulumi-lang-python=\"`denied`\" pulumi-lang-yaml=\"`denied`\" pulumi-lang-java=\"`denied`\"\u003e`denied`\u003c/span\u003e.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The Consul cluster to use when none is specified in the job.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of Consul clusters not allowed to be used in this namespace. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`allowed`\" pulumi-lang-dotnet=\"`Allowed`\" pulumi-lang-go=\"`allowed`\" pulumi-lang-python=\"`allowed`\" pulumi-lang-yaml=\"`allowed`\" pulumi-lang-java=\"`allowed`\"\u003e`allowed`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/NamespaceNodePoolConfig:NamespaceNodePoolConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of node pools that are allowed to be used in this namespace.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The default node pool for jobs that don't define one.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of node pools that are not allowed to be used in this namespace.\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "default"
                    ]
                }
            }
        },
        "nomad:index/NamespaceVaultConfig:NamespaceVaultConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of Vault clusters allowed to be used in this namespace. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`denied`\" pulumi-lang-dotnet=\"`Denied`\" pulumi-lang-go=\"`denied`\" pulumi-lang-python=\"`denied`\" pulumi-lang-yaml=\"`denied`\" pulumi-lang-java=\"`denied`\"\u003e`denied`\u003c/span\u003e.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The Vault cluster to use when none is specified in the job.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The list of Vault clusters not allowed to be used in this namespace. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`allowed`\" pulumi-lang-dotnet=\"`Allowed`\" pulumi-lang-go=\"`allowed`\" pulumi-lang-python=\"`allowed`\" pulumi-lang-yaml=\"`allowed`\" pulumi-lang-java=\"`allowed`\"\u003e`allowed`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/NodePoolSchedulerConfig:NodePoolSchedulerConfig": {
            "properties": {
                "memoryOversubscription": {
                    "type": "string",
                    "description": "`(string)` - Whether or not memory\noversubscription is enabled in the node pool. Possible values are\n`\"enabled\"` or `\"disabled\"`. If not defined the global cluster\nconfiguration is used.\n\n\u003e This option differs from Nomad, where it's represented as a boolean, to\nallow distinguishing between memory oversubscription being disabled in the\nnode pool and this property not being set.\n"
                },
                "schedulerAlgorithm": {
                    "type": "string",
                    "description": "`(string)` - The scheduler algorithm used in the node\npool. Possible values are \u003cspan pulumi-lang-nodejs=\"`binpack`\" pulumi-lang-dotnet=\"`Binpack`\" pulumi-lang-go=\"`binpack`\" pulumi-lang-python=\"`binpack`\" pulumi-lang-yaml=\"`binpack`\" pulumi-lang-java=\"`binpack`\"\u003e`binpack`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`spread`\" pulumi-lang-dotnet=\"`Spread`\" pulumi-lang-go=\"`spread`\" pulumi-lang-python=\"`spread`\" pulumi-lang-yaml=\"`spread`\" pulumi-lang-java=\"`spread`\"\u003e`spread`\u003c/span\u003e. If not defined the global\ncluster configuration is used.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/ProviderAuthJwt:ProviderAuthJwt": {
            "properties": {
                "authMethod": {
                    "type": "string",
                    "description": "The name of the auth method to use for login.\n"
                },
                "loginToken": {
                    "type": "string",
                    "description": "The externally issued authentication token to be exchanged for a Nomad ACL Token.\n",
                    "secret": true
                }
            },
            "type": "object",
            "required": [
                "authMethod",
                "loginToken"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": []
                }
            }
        },
        "nomad:index/ProviderHeader:ProviderHeader": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The header name\n"
                },
                "value": {
                    "type": "string",
                    "description": "The header value\n",
                    "secret": true
                }
            },
            "type": "object",
            "required": [
                "name",
                "value"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": []
                }
            }
        },
        "nomad:index/QuoteSpecificationLimit:QuoteSpecificationLimit": {
            "properties": {
                "region": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The region these limits should apply to.\n- \u003cspan pulumi-lang-nodejs=\"`regionLimit`\" pulumi-lang-dotnet=\"`RegionLimit`\" pulumi-lang-go=\"`regionLimit`\" pulumi-lang-python=\"`region_limit`\" pulumi-lang-yaml=\"`regionLimit`\" pulumi-lang-java=\"`regionLimit`\"\u003e`regionLimit`\u003c/span\u003e `(block: \u003crequired\u003e)` - The limits to enforce. This block\nmay only be specified once in the \u003cspan pulumi-lang-nodejs=\"`limits`\" pulumi-lang-dotnet=\"`Limits`\" pulumi-lang-go=\"`limits`\" pulumi-lang-python=\"`limits`\" pulumi-lang-yaml=\"`limits`\" pulumi-lang-java=\"`limits`\"\u003e`limits`\u003c/span\u003e block. Its structure is\ndocumented below.\n"
                },
                "regionLimit": {
                    "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimit:QuoteSpecificationLimitRegionLimit",
                    "description": "The limit applied to this region.\n"
                }
            },
            "type": "object",
            "required": [
                "region",
                "regionLimit"
            ]
        },
        "nomad:index/QuoteSpecificationLimitRegionLimit:QuoteSpecificationLimitRegionLimit": {
            "properties": {
                "cores": {
                    "type": "integer",
                    "description": "`(int: 0)` - The number of CPU cores to limit allocations to. A value\nof zero is treated as unlimited, and a negative value is treated as fully\ndisallowed.\n"
                },
                "cpu": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of CPU to limit allocations to. A value of zero\nis treated as unlimited, and a negative value is treated as fully disallowed.\n"
                },
                "devices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimitDevice:QuoteSpecificationLimitRegionLimitDevice"
                    }
                },
                "memoryMaxMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The maximum amount of memory (in megabytes) to\nlimit allocations to. A value of zero is treated as unlimited, and a negative\nvalue is treated as fully disallowed.\n- \u003cspan pulumi-lang-nodejs=\"`devices`\" pulumi-lang-dotnet=\"`Devices`\" pulumi-lang-go=\"`devices`\" pulumi-lang-python=\"`devices`\" pulumi-lang-yaml=\"`devices`\" pulumi-lang-java=\"`devices`\"\u003e`devices`\u003c/span\u003e `(block: optional)` - A list of device quotas to enforce. Can be\nrepeated. See below for the structure of this block.\n- \u003cspan pulumi-lang-nodejs=\"`nodePools`\" pulumi-lang-dotnet=\"`NodePools`\" pulumi-lang-go=\"`nodePools`\" pulumi-lang-python=\"`node_pools`\" pulumi-lang-yaml=\"`nodePools`\" pulumi-lang-java=\"`nodePools`\"\u003e`nodePools`\u003c/span\u003e `(block: optional)` - Per-node-pool quota limits. Can be\nrepeated. See below for the structure of this block.\n- \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e `(block: optional)` - Storage resource quota configuration. May only\nbe specified once. See below for the structure of this block.\n"
                },
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of memory (in megabytes) to limit\nallocations to. A value of zero is treated as unlimited, and a negative value\nis treated as fully disallowed.\n"
                },
                "nodePools": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimitNodePool:QuoteSpecificationLimitRegionLimitNodePool"
                    }
                },
                "storage": {
                    "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimitStorage:QuoteSpecificationLimitRegionLimitStorage"
                }
            },
            "type": "object"
        },
        "nomad:index/QuoteSpecificationLimitRegionLimitDevice:QuoteSpecificationLimitRegionLimitDevice": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(int: 0)` - The number of device instances to limit allocations to.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the device, e.g.\n`\"nvidia/gpu\"`.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ]
        },
        "nomad:index/QuoteSpecificationLimitRegionLimitNodePool:QuoteSpecificationLimitRegionLimitNodePool": {
            "properties": {
                "cores": {
                    "type": "integer",
                    "description": "`(int: 0)` - The number of CPU cores to limit allocations to. A value\nof zero is treated as unlimited, and a negative value is treated as fully\ndisallowed.\n"
                },
                "cpu": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of CPU to limit allocations to. A value of zero\nis treated as unlimited, and a negative value is treated as fully disallowed.\n"
                },
                "devices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimitNodePoolDevice:QuoteSpecificationLimitRegionLimitNodePoolDevice"
                    }
                },
                "memoryMaxMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The maximum amount of memory (in megabytes) to\nlimit allocations to. A value of zero is treated as unlimited, and a negative\nvalue is treated as fully disallowed.\n- \u003cspan pulumi-lang-nodejs=\"`devices`\" pulumi-lang-dotnet=\"`Devices`\" pulumi-lang-go=\"`devices`\" pulumi-lang-python=\"`devices`\" pulumi-lang-yaml=\"`devices`\" pulumi-lang-java=\"`devices`\"\u003e`devices`\u003c/span\u003e `(block: optional)` - A list of device quotas to\nenforce for the node pool. Can be repeated.\n- \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e `(block: optional)` - Storage resource quota\nconfiguration for the node pool. May only be specified once.\n"
                },
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of memory (in megabytes) to limit\nallocations to. A value of zero is treated as unlimited, and a negative value\nis treated as fully disallowed.\n"
                },
                "nodePool": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The node pool name to apply limits to.\n"
                },
                "storage": {
                    "$ref": "#/types/nomad:index/QuoteSpecificationLimitRegionLimitNodePoolStorage:QuoteSpecificationLimitRegionLimitNodePoolStorage"
                }
            },
            "type": "object",
            "required": [
                "nodePool"
            ]
        },
        "nomad:index/QuoteSpecificationLimitRegionLimitNodePoolDevice:QuoteSpecificationLimitRegionLimitNodePoolDevice": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(int: 0)` - The number of device instances to limit allocations to.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the device, e.g.\n`\"nvidia/gpu\"`.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ]
        },
        "nomad:index/QuoteSpecificationLimitRegionLimitNodePoolStorage:QuoteSpecificationLimitRegionLimitNodePoolStorage": {
            "properties": {
                "hostVolumesMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of storage (in megabytes) to limit\nhost volumes to.\n"
                },
                "variablesMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of storage (in megabytes) to limit\nNomad variables to.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/QuoteSpecificationLimitRegionLimitStorage:QuoteSpecificationLimitRegionLimitStorage": {
            "properties": {
                "hostVolumesMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of storage (in megabytes) to limit\nhost volumes to.\n"
                },
                "variablesMb": {
                    "type": "integer",
                    "description": "`(int: 0)` - The amount of storage (in megabytes) to limit\nNomad variables to.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/VolumeCapability:VolumeCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The storage API that will be used by the volume. Possible values are:\n- `block-device`\n- `file-system`\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ]
        },
        "nomad:index/VolumeMountOptions:VolumeMountOptions": {
            "properties": {
                "fsType": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The file system type.\n"
                },
                "mountFlags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string: \u003coptional\u003e)` - The flags passed to \u003cspan pulumi-lang-nodejs=\"`mount`\" pulumi-lang-dotnet=\"`Mount`\" pulumi-lang-go=\"`mount`\" pulumi-lang-python=\"`mount`\" pulumi-lang-yaml=\"`mount`\" pulumi-lang-java=\"`mount`\"\u003e`mount`\u003c/span\u003e.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/VolumeTopology:VolumeTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Define the attributes for the topology request.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n"
                }
            },
            "type": "object",
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "segments"
                    ]
                }
            }
        },
        "nomad:index/VolumeTopologyRequest:VolumeTopologyRequest": {
            "properties": {
                "required": {
                    "$ref": "#/types/nomad:index/VolumeTopologyRequestRequired:VolumeTopologyRequestRequired",
                    "description": "`(``Topology``: \u003coptional\u003e)` - Required topologies indicate that the volume must be created in a location accessible from all the listed topologies.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "nomad:index/VolumeTopologyRequestRequired:VolumeTopologyRequestRequired": {
            "properties": {
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/VolumeTopologyRequestRequiredTopology:VolumeTopologyRequestRequiredTopology"
                    },
                    "description": "Defines the location for the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "topologies"
            ]
        },
        "nomad:index/VolumeTopologyRequestRequiredTopology:VolumeTopologyRequestRequiredTopology": {
            "properties": {
                "segments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Define attributes for the topology request.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "segments"
            ]
        },
        "nomad:index/getAclPoliciesPolicy:getAclPoliciesPolicy": {
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string)` - the description of the ACL Policy.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - the name of the ACL Policy.\n"
                }
            },
            "type": "object",
            "required": [
                "description",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclRolePolicy:getAclRolePolicy": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "`(string)` - Unique name of the ACL role.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclRolesAclRole:getAclRolesAclRole": {
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string)` - The description of the ACL Role.\n"
                },
                "id": {
                    "type": "string",
                    "description": "`(string)` - The ACL Role unique identifier.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - Unique name of the ACL role.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getAclRolesAclRolePolicy:getAclRolesAclRolePolicy"
                    },
                    "description": "`(set)` - The policies applied to the role.\n"
                }
            },
            "type": "object",
            "required": [
                "description",
                "id",
                "name",
                "policies"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclRolesAclRolePolicy:getAclRolesAclRolePolicy": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "`(string)` - Unique name of the ACL role.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclTokenRole:getAclTokenRole": {
            "properties": {
                "id": {
                    "type": "string",
                    "description": "The ID of the ACL role.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` Non-sensitive identifier for this token.\n"
                }
            },
            "type": "object",
            "required": [
                "id",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclTokensAclToken:getAclTokensAclToken": {
            "properties": {
                "accessorId": {
                    "type": "string",
                    "description": "`(TypeString)` Non-sensitive identifier for the token.\n"
                },
                "createTime": {
                    "type": "string",
                    "description": "`(string)` Date and time the token was created at.\n"
                },
                "expirationTime": {
                    "type": "string",
                    "description": "`(string)` - The timestamp after which the token is\nconsidered expired and eligible for destruction.\n"
                },
                "global": {
                    "type": "boolean",
                    "description": "`(bool)` Whether the token is replicated to all regions.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(TypeString)` The name of the token.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`(list of strings)` The list of policies attached to the token.\n"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getAclTokensAclTokenRole:getAclTokensAclTokenRole"
                    },
                    "description": "`(set: [])` - The list of roles attached to the token. Each entry has\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e attributes.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(TypeString)` The type of the token.\n"
                }
            },
            "type": "object",
            "required": [
                "accessorId",
                "createTime",
                "expirationTime",
                "global",
                "name",
                "policies",
                "roles",
                "type"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAclTokensAclTokenRole:getAclTokensAclTokenRole": {
            "properties": {
                "id": {
                    "type": "string",
                    "description": "The ID of the ACL role.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(TypeString)` The name of the token.\n"
                }
            },
            "type": "object",
            "required": [
                "id",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getAllocationsAllocation:getAllocationsAllocation": {
            "properties": {
                "clientStatus": {
                    "type": "string",
                    "description": "`(string)` - The current client status of the allocation.\n"
                },
                "createIndex": {
                    "type": "integer",
                    "description": "`(int)` - The Raft index in which the allocation was created.\n"
                },
                "createTime": {
                    "type": "integer",
                    "description": "`(int)` - The timestamp of when the allocation was created.\n"
                },
                "desiredStatus": {
                    "type": "string",
                    "description": "`(string)` - The current desired status of the allocation.\n"
                },
                "evalId": {
                    "type": "string",
                    "description": "`(string)` - The ID of the evaluation that generated the allocation.\n"
                },
                "followupEvalId": {
                    "type": "string",
                    "description": "`(string)` - The ID of the evaluation that succeeds the allocation evaluation.\n"
                },
                "id": {
                    "type": "string",
                    "description": "`(string)` - The ID of the allocation.\n"
                },
                "jobId": {
                    "type": "string",
                    "description": "`(string)` - The ID of the job related to the allocation.\n"
                },
                "jobType": {
                    "type": "string",
                    "description": "`(string)` - The type of the job related to the allocation.\n"
                },
                "jobVersion": {
                    "type": "integer",
                    "description": "`(int)` - The version of the job that generated the allocation.\n"
                },
                "modifyIndex": {
                    "type": "integer",
                    "description": "`(int)` - The Raft index in which the allocation was last modified.\n"
                },
                "modifyTime": {
                    "type": "integer",
                    "description": "`(int)` - The timestamp of when the allocation was last modified.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The name of the allocation.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Specifies the namespace to search for\nallocations in.\n"
                },
                "nextAllocation": {
                    "type": "string",
                    "description": "`(string)` - The ID of the allocation that succeeds the allocation.\n"
                },
                "nodeId": {
                    "type": "string",
                    "description": "`(string)` - The ID of the node to which the allocation was scheduled.\n"
                },
                "nodeName": {
                    "type": "string",
                    "description": "`(string)` - The ID of the node to which the allocation was scheduled.\n"
                },
                "preemptedByAllocation": {
                    "type": "string",
                    "description": "`(string)` - The ID of the allocation that preempted the allocation.\n"
                },
                "taskGroup": {
                    "type": "string",
                    "description": "`(string)` - The job task group related to the allocation.\n"
                }
            },
            "type": "object",
            "required": [
                "clientStatus",
                "createIndex",
                "createTime",
                "desiredStatus",
                "evalId",
                "followupEvalId",
                "id",
                "jobId",
                "jobType",
                "jobVersion",
                "modifyIndex",
                "modifyTime",
                "name",
                "namespace",
                "nextAllocation",
                "nodeId",
                "nodeName",
                "preemptedByAllocation",
                "taskGroup"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getDynamicHostVolumeCapability:getDynamicHostVolumeCapability": {
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string)` - How the volume can be mounted by\nallocations. Refer to the [\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e][] documentation for details.\n"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string)` - The storage API that will be used by the\nvolume. Refer to the [\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e][] documentation.\n"
                }
            },
            "type": "object",
            "required": [
                "accessMode",
                "attachmentMode"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getDynamicHostVolumeConstraint:getDynamicHostVolumeConstraint": {
            "properties": {
                "attribute": {
                    "type": "string",
                    "description": "`(string)` - The [node attribute][] to check for the constraint.\n"
                },
                "operator": {
                    "type": "string",
                    "description": "`(string)`- The operator to use in the comparison.\n"
                },
                "value": {
                    "type": "string",
                    "description": "`(string)` - The value of the attribute to compare against.\n"
                }
            },
            "type": "object",
            "required": [
                "attribute",
                "operator",
                "value"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobConstraint:getJobConstraint": {
            "properties": {
                "ltarget": {
                    "type": "string",
                    "description": "`(string)` Attribute being constrained.\n"
                },
                "operand": {
                    "type": "string",
                    "description": "`(string)` Operator used to compare the attribute to the constraint.\n"
                },
                "rtarget": {
                    "type": "string",
                    "description": "`(string)` Constraint value.\n"
                }
            },
            "type": "object",
            "required": [
                "ltarget",
                "operand",
                "rtarget"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobPeriodicConfig:getJobPeriodicConfig": {
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether the periodic job is enabled. When disabled, scheduled runs and force launches are prevented.\n"
                },
                "prohibitOverlap": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether this job should wait until previous instances of the same job have completed before launching again.\n"
                },
                "spec": {
                    "type": "string",
                    "description": "`(string)` Cron expression configuring the interval at which the job is launched.\n"
                },
                "specType": {
                    "type": "string",
                    "description": "`(string)` Type of periodic specification, such as \u003cspan pulumi-lang-nodejs=\"`cron`\" pulumi-lang-dotnet=\"`Cron`\" pulumi-lang-go=\"`cron`\" pulumi-lang-python=\"`cron`\" pulumi-lang-yaml=\"`cron`\" pulumi-lang-java=\"`cron`\"\u003e`cron`\u003c/span\u003e.\n"
                },
                "timezone": {
                    "type": "string",
                    "description": "`(string)` Time zone used to evaluate the next launch interval.\n"
                }
            },
            "type": "object",
            "required": [
                "enabled",
                "prohibitOverlap",
                "spec",
                "specType",
                "timezone"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobTaskGroup:getJobTaskGroup": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(integer)` Task group count.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of strings)` Task group metadata.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` Volume name.\n"
                },
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getJobTaskGroupTask:getJobTaskGroupTask"
                    },
                    "description": "`(list of maps)` Tasks in the task group.\n"
                },
                "updateStrategies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getJobTaskGroupUpdateStrategy:getJobTaskGroupUpdateStrategy"
                    },
                    "description": "`(list of maps)` Job-level update strategy returned by Nomad.\n"
                },
                "volumes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getJobTaskGroupVolume:getJobTaskGroupVolume"
                    },
                    "description": "`(list of maps)` Volume requests for the task group.\n"
                }
            },
            "type": "object",
            "required": [
                "count",
                "meta",
                "name",
                "tasks",
                "updateStrategies",
                "volumes"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobTaskGroupTask:getJobTaskGroupTask": {
            "properties": {
                "driver": {
                    "type": "string",
                    "description": "`(string)` Task driver.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of strings)` Task group metadata.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` Volume name.\n"
                },
                "volumeMounts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getJobTaskGroupTaskVolumeMount:getJobTaskGroupTaskVolumeMount"
                    },
                    "description": "`(list of maps)` Task volume mounts.\n"
                }
            },
            "type": "object",
            "required": [
                "driver",
                "meta",
                "name",
                "volumeMounts"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobTaskGroupTaskVolumeMount:getJobTaskGroupTaskVolumeMount": {
            "properties": {
                "destination": {
                    "type": "string",
                    "description": "`(string)` Destination path inside the task.\n"
                },
                "readOnly": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether the volume is read-only.\n"
                },
                "volume": {
                    "type": "string",
                    "description": "`(string)` Volume name.\n"
                }
            },
            "type": "object",
            "required": [
                "destination",
                "readOnly",
                "volume"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobTaskGroupUpdateStrategy:getJobTaskGroupUpdateStrategy": {
            "properties": {
                "autoRevert": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether the job should automatically revert to the last stable job on deployment failure.\n"
                },
                "canary": {
                    "type": "integer",
                    "description": "`(integer)` Number of canary allocations created before destructive updates continue.\n"
                },
                "healthCheck": {
                    "type": "string",
                    "description": "`(string)` Mechanism used to determine allocation health: \u003cspan pulumi-lang-nodejs=\"`checks`\" pulumi-lang-dotnet=\"`Checks`\" pulumi-lang-go=\"`checks`\" pulumi-lang-python=\"`checks`\" pulumi-lang-yaml=\"`checks`\" pulumi-lang-java=\"`checks`\"\u003e`checks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`taskStates`\" pulumi-lang-dotnet=\"`TaskStates`\" pulumi-lang-go=\"`taskStates`\" pulumi-lang-python=\"`task_states`\" pulumi-lang-yaml=\"`taskStates`\" pulumi-lang-java=\"`taskStates`\"\u003e`taskStates`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"
                },
                "healthyDeadline": {
                    "type": "string",
                    "description": "`(string)` Deadline by which the allocation must become healthy before it is marked unhealthy.\n"
                },
                "maxParallel": {
                    "type": "integer",
                    "description": "`(integer)` Number of allocations within a task group that can be destructively updated at the same time. Setting \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e forces updates instead of deployments.\n"
                },
                "minHealthyTime": {
                    "type": "string",
                    "description": "`(string)` Minimum time the allocation must be in the healthy state before further updates can proceed.\n"
                },
                "stagger": {
                    "type": "string",
                    "description": "`(string)` Delay between each set of \u003cspan pulumi-lang-nodejs=\"`maxParallel`\" pulumi-lang-dotnet=\"`MaxParallel`\" pulumi-lang-go=\"`maxParallel`\" pulumi-lang-python=\"`max_parallel`\" pulumi-lang-yaml=\"`maxParallel`\" pulumi-lang-java=\"`maxParallel`\"\u003e`maxParallel`\u003c/span\u003e updates when updating system jobs.\n"
                }
            },
            "type": "object",
            "required": [
                "autoRevert",
                "canary",
                "healthCheck",
                "healthyDeadline",
                "maxParallel",
                "minHealthyTime",
                "stagger"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobTaskGroupVolume:getJobTaskGroupVolume": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "`(string)` Volume name.\n"
                },
                "readOnly": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether the volume is read-only.\n"
                },
                "source": {
                    "type": "string",
                    "description": "`(string)` Volume source.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` Volume type.\n"
                }
            },
            "type": "object",
            "required": [
                "name",
                "readOnly",
                "source",
                "type"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJobUpdateStrategy:getJobUpdateStrategy": {
            "properties": {
                "autoRevert": {
                    "type": "boolean",
                    "description": "`(boolean)` Whether the job should automatically revert to the last stable job on deployment failure.\n"
                },
                "canary": {
                    "type": "integer",
                    "description": "`(integer)` Number of canary allocations created before destructive updates continue.\n"
                },
                "healthCheck": {
                    "type": "string",
                    "description": "`(string)` Mechanism used to determine allocation health: \u003cspan pulumi-lang-nodejs=\"`checks`\" pulumi-lang-dotnet=\"`Checks`\" pulumi-lang-go=\"`checks`\" pulumi-lang-python=\"`checks`\" pulumi-lang-yaml=\"`checks`\" pulumi-lang-java=\"`checks`\"\u003e`checks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`taskStates`\" pulumi-lang-dotnet=\"`TaskStates`\" pulumi-lang-go=\"`taskStates`\" pulumi-lang-python=\"`task_states`\" pulumi-lang-yaml=\"`taskStates`\" pulumi-lang-java=\"`taskStates`\"\u003e`taskStates`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"
                },
                "healthyDeadline": {
                    "type": "string",
                    "description": "`(string)` Deadline by which the allocation must become healthy before it is marked unhealthy.\n"
                },
                "maxParallel": {
                    "type": "integer",
                    "description": "`(integer)` Number of allocations within a task group that can be destructively updated at the same time. Setting \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e forces updates instead of deployments.\n"
                },
                "minHealthyTime": {
                    "type": "string",
                    "description": "`(string)` Minimum time the allocation must be in the healthy state before further updates can proceed.\n"
                },
                "stagger": {
                    "type": "string",
                    "description": "`(string)` Delay between each set of \u003cspan pulumi-lang-nodejs=\"`maxParallel`\" pulumi-lang-dotnet=\"`MaxParallel`\" pulumi-lang-go=\"`maxParallel`\" pulumi-lang-python=\"`max_parallel`\" pulumi-lang-yaml=\"`maxParallel`\" pulumi-lang-java=\"`maxParallel`\"\u003e`maxParallel`\u003c/span\u003e updates when updating system jobs.\n"
                }
            },
            "type": "object",
            "required": [
                "autoRevert",
                "canary",
                "healthCheck",
                "healthyDeadline",
                "maxParallel",
                "minHealthyTime",
                "stagger"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getJwksKey:getJwksKey": {
            "properties": {
                "algorithm": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`alg`\" pulumi-lang-dotnet=\"`Alg`\" pulumi-lang-go=\"`alg`\" pulumi-lang-python=\"`alg`\" pulumi-lang-yaml=\"`alg`\" pulumi-lang-java=\"`alg`\"\u003e`alg`\u003c/span\u003e (e.g. `RS256`, `EdDSA`)\n"
                },
                "curve": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`crv`\" pulumi-lang-dotnet=\"`Crv`\" pulumi-lang-go=\"`crv`\" pulumi-lang-python=\"`crv`\" pulumi-lang-yaml=\"`crv`\" pulumi-lang-java=\"`crv`\"\u003e`crv`\u003c/span\u003e (EdDSA only, e.g. `Ed25519`)\n"
                },
                "exponent": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`e`\" pulumi-lang-dotnet=\"`E`\" pulumi-lang-go=\"`e`\" pulumi-lang-python=\"`e`\" pulumi-lang-yaml=\"`e`\" pulumi-lang-java=\"`e`\"\u003e`e`\u003c/span\u003e (RSA only)\n"
                },
                "keyId": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`kid`\" pulumi-lang-dotnet=\"`Kid`\" pulumi-lang-go=\"`kid`\" pulumi-lang-python=\"`kid`\" pulumi-lang-yaml=\"`kid`\" pulumi-lang-java=\"`kid`\"\u003e`kid`\u003c/span\u003e\n"
                },
                "keyType": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`kty`\" pulumi-lang-dotnet=\"`Kty`\" pulumi-lang-go=\"`kty`\" pulumi-lang-python=\"`kty`\" pulumi-lang-yaml=\"`kty`\" pulumi-lang-java=\"`kty`\"\u003e`kty`\u003c/span\u003e (e.g. `RSA`, `OKP`)\n"
                },
                "keyUse": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`use`\" pulumi-lang-dotnet=\"`Use`\" pulumi-lang-go=\"`use`\" pulumi-lang-python=\"`use`\" pulumi-lang-yaml=\"`use`\" pulumi-lang-java=\"`use`\"\u003e`use`\u003c/span\u003e\n"
                },
                "modulus": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`n`\" pulumi-lang-dotnet=\"`N`\" pulumi-lang-go=\"`n`\" pulumi-lang-python=\"`n`\" pulumi-lang-yaml=\"`n`\" pulumi-lang-java=\"`n`\"\u003e`n`\u003c/span\u003e (RSA only)\n"
                },
                "x": {
                    "type": "string",
                    "description": "`(string)` - JWK field \u003cspan pulumi-lang-nodejs=\"`x`\" pulumi-lang-dotnet=\"`X`\" pulumi-lang-go=\"`x`\" pulumi-lang-python=\"`x`\" pulumi-lang-yaml=\"`x`\" pulumi-lang-java=\"`x`\"\u003e`x`\u003c/span\u003e (EdDSA only, the public key)\n"
                }
            },
            "type": "object",
            "required": [
                "algorithm",
                "curve",
                "exponent",
                "keyId",
                "keyType",
                "keyUse",
                "modulus",
                "x"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNamespaceCapability:getNamespaceCapability": {
            "properties": {
                "disabledNetworkModes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - Network modes disabled for the namespace.\n"
                },
                "disabledTaskDrivers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - Task drivers disabled for the namespace.\n"
                },
                "enabledNetworkModes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - Network modes enabled for the namespace.\n"
                },
                "enabledTaskDrivers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - Task drivers enabled for the namespace.\n"
                }
            },
            "type": "object"
        },
        "nomad:index/getNamespaceConsulConfig:getNamespaceConsulConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters allowed to be used in this namespace.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string)` - The Consul cluster to use when none is specified in the job.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters not allowed to be used in this namespace.\n"
                }
            },
            "type": "object",
            "required": [
                "alloweds",
                "default",
                "denieds"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNamespaceNodePoolConfig:getNamespaceNodePoolConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters allowed to be used in this namespace.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string)` - The Consul cluster to use when none is specified in the job.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters not allowed to be used in this namespace.\n"
                }
            },
            "type": "object",
            "required": [
                "alloweds",
                "default",
                "denieds"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNamespaceVaultConfig:getNamespaceVaultConfig": {
            "properties": {
                "alloweds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters allowed to be used in this namespace.\n"
                },
                "default": {
                    "type": "string",
                    "description": "`(string)` - The Consul cluster to use when none is specified in the job.\n"
                },
                "denieds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`([]string)` - The list of Consul clusters not allowed to be used in this namespace.\n"
                }
            },
            "type": "object",
            "required": [
                "alloweds",
                "default",
                "denieds"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeDriver:getNodeDriver": {
            "properties": {
                "attributes": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of string)` - Driver-specific attributes.\n"
                },
                "detected": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the driver is detected.\n"
                },
                "healthy": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the driver is healthy.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                }
            },
            "type": "object",
            "required": [
                "attributes",
                "detected",
                "healthy",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeHostVolume:getNodeHostVolume": {
            "properties": {
                "id": {
                    "type": "string",
                    "description": "`(string)` - The ID of the host volume (set for dynamic host volumes only).\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                },
                "path": {
                    "type": "string",
                    "description": "`(string)` - The path of the host volume.\n"
                },
                "readOnly": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the host volume is read-only.\n"
                }
            },
            "type": "object",
            "required": [
                "id",
                "name",
                "path",
                "readOnly"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResource:getNodeNodeResource": {
            "properties": {
                "cpus": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeNodeResourceCpus:getNodeNodeResourceCpus"
                    },
                    "description": "`(list)` - Reserved CPU resources.\n"
                },
                "devices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeNodeResourceDevice:getNodeNodeResourceDevice"
                    },
                    "description": "`(list)` - Device resources on the node (GPUs, etc.).\n"
                },
                "disks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeNodeResourceDisk:getNodeNodeResourceDisk"
                    },
                    "description": "`(list)` - Reserved disk resources.\n"
                },
                "maxDynamicPort": {
                    "type": "integer",
                    "description": "`(int)` - Maximum dynamic port for this node.\n"
                },
                "memories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeNodeResourceMemory:getNodeNodeResourceMemory"
                    },
                    "description": "`(list)` - Reserved memory resources.\n"
                },
                "minDynamicPort": {
                    "type": "integer",
                    "description": "`(int)` - Minimum dynamic port for this node.\n"
                },
                "networks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeNodeResourceNetwork:getNodeNodeResourceNetwork"
                    },
                    "description": "`(map of string)` - Reserved network resources.\n"
                }
            },
            "type": "object",
            "required": [
                "cpus",
                "devices",
                "disks",
                "maxDynamicPort",
                "memories",
                "minDynamicPort",
                "networks"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResourceCpus:getNodeNodeResourceCpus": {
            "properties": {
                "cpuShares": {
                    "type": "integer",
                    "description": "`(int)` - Reserved CPU shares.\n"
                },
                "reservableCpuCores": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "description": "`(list of int)` - List of reservable CPU core IDs.\n"
                },
                "totalCpuCores": {
                    "type": "integer",
                    "description": "`(int)` - Total number of CPU cores.\n"
                }
            },
            "type": "object",
            "required": [
                "cpuShares",
                "reservableCpuCores",
                "totalCpuCores"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResourceDevice:getNodeNodeResourceDevice": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(int)` - The number of device instances.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` - The device type.\n"
                },
                "vendor": {
                    "type": "string",
                    "description": "`(string)` - The device vendor.\n"
                }
            },
            "type": "object",
            "required": [
                "count",
                "name",
                "type",
                "vendor"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResourceDisk:getNodeNodeResourceDisk": {
            "properties": {
                "diskMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved disk space in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "diskMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResourceMemory:getNodeNodeResourceMemory": {
            "properties": {
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved memory in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeNodeResourceNetwork:getNodeNodeResourceNetwork": {
            "properties": {
                "cidr": {
                    "type": "string",
                    "description": "`(string)` - The CIDR of the network.\n"
                },
                "device": {
                    "type": "string",
                    "description": "`(string)` - The network device.\n"
                },
                "ip": {
                    "type": "string",
                    "description": "`(string)` - The IP address of the network.\n"
                },
                "mode": {
                    "type": "string",
                    "description": "`(string)` - The network mode.\n"
                }
            },
            "type": "object",
            "required": [
                "cidr",
                "device",
                "ip",
                "mode"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodePoolSchedulerConfig:getNodePoolSchedulerConfig": {
            "properties": {
                "memoryOversubscription": {
                    "type": "string",
                    "description": "`(string)` - Whether or not memory\noversubscription is enabled in the node pool. If empty or not defined the\nglobal cluster configuration is used.\n"
                },
                "schedulerAlgorithm": {
                    "type": "string",
                    "description": "`(string)` - The scheduler algorithm used in the node\npool. If empty or not defined the global cluster configuration is used.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryOversubscription",
                "schedulerAlgorithm"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodePoolsNodePool:getNodePoolsNodePool": {
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string)` - The description of the node pool.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Arbitrary KV metadata associated with the\nnode pool.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The name of the node pool.\n"
                },
                "nodeIdentityTtl": {
                    "type": "string",
                    "description": "`(string)` - The TTL applied to node identities issued to\nnodes in this pool.\n"
                },
                "schedulerConfigs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodePoolsNodePoolSchedulerConfig:getNodePoolsNodePoolSchedulerConfig"
                    },
                    "description": "`(block)` - Scheduler configuration for the node pool.\n"
                }
            },
            "type": "object",
            "required": [
                "description",
                "meta",
                "name",
                "nodeIdentityTtl",
                "schedulerConfigs"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodePoolsNodePoolSchedulerConfig:getNodePoolsNodePoolSchedulerConfig": {
            "properties": {
                "memoryOversubscription": {
                    "type": "string",
                    "description": "`(string)` - Whether or not memory\noversubscription is enabled in the node pool. If empty or not defined the\nglobal cluster configuration is used.\n"
                },
                "schedulerAlgorithm": {
                    "type": "string",
                    "description": "`(string)` - The scheduler algorithm used in the node\npool. If empty or not defined the global cluster configuration is used.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryOversubscription",
                "schedulerAlgorithm"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeReservedResource:getNodeReservedResource": {
            "properties": {
                "cpus": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeReservedResourceCpus:getNodeReservedResourceCpus"
                    },
                    "description": "`(list)` - Reserved CPU resources.\n"
                },
                "disks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeReservedResourceDisk:getNodeReservedResourceDisk"
                    },
                    "description": "`(list)` - Reserved disk resources.\n"
                },
                "memories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodeReservedResourceMemory:getNodeReservedResourceMemory"
                    },
                    "description": "`(list)` - Reserved memory resources.\n"
                },
                "networks": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of string)` - Reserved network resources.\n"
                }
            },
            "type": "object",
            "required": [
                "cpus",
                "disks",
                "memories",
                "networks"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeReservedResourceCpus:getNodeReservedResourceCpus": {
            "properties": {
                "cpuShares": {
                    "type": "integer",
                    "description": "`(int)` - Reserved CPU shares.\n"
                }
            },
            "type": "object",
            "required": [
                "cpuShares"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeReservedResourceDisk:getNodeReservedResourceDisk": {
            "properties": {
                "diskMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved disk space in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "diskMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodeReservedResourceMemory:getNodeReservedResourceMemory": {
            "properties": {
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved memory in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNode:getNodesNode": {
            "properties": {
                "address": {
                    "type": "string",
                    "description": "`(string)` - The address of the node.\n"
                },
                "attributes": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of string)` - Driver-specific attributes.\n"
                },
                "datacenter": {
                    "type": "string",
                    "description": "`(string)` - The datacenter of the node.\n"
                },
                "drain": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the node is in drain mode. This value is ephemeral\nand can change without an agent restart.\n"
                },
                "drivers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeDriver:getNodesNodeDriver"
                    },
                    "description": "`(list of drivers)` - A list of driver information for the node.\n"
                },
                "id": {
                    "type": "string",
                    "description": "`(string)` - The ID of the node.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                },
                "nodeClass": {
                    "type": "string",
                    "description": "`(string)` - The node class of the node.\n"
                },
                "nodePool": {
                    "type": "string",
                    "description": "`(string)` - The node pool of the node.\n"
                },
                "nodeResources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResource:getNodesNodeNodeResource"
                    },
                    "description": "`(list)` - Resources available on the node. Only populated\nwhen the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e parameter is set to true.\n"
                },
                "reservedResources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeReservedResource:getNodesNodeReservedResource"
                    },
                    "description": "`(list)` - Resources reserved on the node. Only populated\nwhen the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e parameter is set to true.\n"
                },
                "schedulingEligibility": {
                    "type": "string",
                    "description": "`(string)` - The scheduling eligibility of the node.\nThis value is ephemeral and can change without an agent restart.\n"
                },
                "status": {
                    "type": "string",
                    "description": "`(string)` - The status of the node. This value is ephemeral and\ncan change without an agent restart.\n"
                },
                "statusDescription": {
                    "type": "string",
                    "description": "`(string)` - The status description of the node. This\nvalue is ephemeral and can change without an agent restart.\n"
                },
                "version": {
                    "type": "string",
                    "description": "`(string)` - The Nomad version of the node.\n"
                }
            },
            "type": "object",
            "required": [
                "address",
                "attributes",
                "datacenter",
                "drain",
                "drivers",
                "id",
                "name",
                "nodeClass",
                "nodePool",
                "nodeResources",
                "reservedResources",
                "schedulingEligibility",
                "status",
                "statusDescription",
                "version"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeDriver:getNodesNodeDriver": {
            "properties": {
                "attributes": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of string)` - Driver-specific attributes.\n"
                },
                "detected": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the driver is detected.\n"
                },
                "healthy": {
                    "type": "boolean",
                    "description": "`(bool)` - Whether the driver is healthy.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                }
            },
            "type": "object",
            "required": [
                "attributes",
                "detected",
                "healthy",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResource:getNodesNodeNodeResource": {
            "properties": {
                "cpus": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResourceCpus:getNodesNodeNodeResourceCpus"
                    },
                    "description": "`(list)` - Reserved CPU resources.\n"
                },
                "devices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResourceDevice:getNodesNodeNodeResourceDevice"
                    },
                    "description": "`(list)` - Device resources on the node (GPUs, etc.).\n"
                },
                "disks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResourceDisk:getNodesNodeNodeResourceDisk"
                    },
                    "description": "`(list)` - Reserved disk resources.\n"
                },
                "maxDynamicPort": {
                    "type": "integer",
                    "description": "`(int)` - Maximum dynamic port for this node.\n"
                },
                "memories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResourceMemory:getNodesNodeNodeResourceMemory"
                    },
                    "description": "`(list)` - Reserved memory resources.\n"
                },
                "minDynamicPort": {
                    "type": "integer",
                    "description": "`(int)` - Minimum dynamic port for this node.\n"
                },
                "networks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeNodeResourceNetwork:getNodesNodeNodeResourceNetwork"
                    },
                    "description": "`(map of string)` - Reserved network resources.\n"
                }
            },
            "type": "object",
            "required": [
                "cpus",
                "devices",
                "disks",
                "maxDynamicPort",
                "memories",
                "minDynamicPort",
                "networks"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResourceCpus:getNodesNodeNodeResourceCpus": {
            "properties": {
                "cpuShares": {
                    "type": "integer",
                    "description": "`(int)` - Reserved CPU shares.\n"
                },
                "reservableCpuCores": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "description": "`(list of int)` - List of reservable CPU core IDs.\n"
                },
                "totalCpuCores": {
                    "type": "integer",
                    "description": "`(int)` - Total number of CPU cores.\n"
                }
            },
            "type": "object",
            "required": [
                "cpuShares",
                "reservableCpuCores",
                "totalCpuCores"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResourceDevice:getNodesNodeNodeResourceDevice": {
            "properties": {
                "count": {
                    "type": "integer",
                    "description": "`(int)` - The number of device instances.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The device name.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` - The device type.\n"
                },
                "vendor": {
                    "type": "string",
                    "description": "`(string)` - The device vendor.\n"
                }
            },
            "type": "object",
            "required": [
                "count",
                "name",
                "type",
                "vendor"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResourceDisk:getNodesNodeNodeResourceDisk": {
            "properties": {
                "diskMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved disk space in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "diskMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResourceMemory:getNodesNodeNodeResourceMemory": {
            "properties": {
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved memory in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeNodeResourceNetwork:getNodesNodeNodeResourceNetwork": {
            "properties": {
                "cidr": {
                    "type": "string",
                    "description": "`(string)` - The CIDR of the network.\n"
                },
                "device": {
                    "type": "string",
                    "description": "`(string)` - The network device.\n"
                },
                "ip": {
                    "type": "string",
                    "description": "`(string)` - The IP address of the network.\n"
                },
                "mode": {
                    "type": "string",
                    "description": "`(string)` - The network mode.\n"
                }
            },
            "type": "object",
            "required": [
                "cidr",
                "device",
                "ip",
                "mode"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeReservedResource:getNodesNodeReservedResource": {
            "properties": {
                "cpus": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeReservedResourceCpus:getNodesNodeReservedResourceCpus"
                    },
                    "description": "`(list)` - Reserved CPU resources.\n"
                },
                "disks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeReservedResourceDisk:getNodesNodeReservedResourceDisk"
                    },
                    "description": "`(list)` - Reserved disk resources.\n"
                },
                "memories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/getNodesNodeReservedResourceMemory:getNodesNodeReservedResourceMemory"
                    },
                    "description": "`(list)` - Reserved memory resources.\n"
                },
                "networks": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map of string)` - Reserved network resources.\n"
                }
            },
            "type": "object",
            "required": [
                "cpus",
                "disks",
                "memories",
                "networks"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeReservedResourceCpus:getNodesNodeReservedResourceCpus": {
            "properties": {
                "cpuShares": {
                    "type": "integer",
                    "description": "`(int)` - Reserved CPU shares.\n"
                }
            },
            "type": "object",
            "required": [
                "cpuShares"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeReservedResourceDisk:getNodesNodeReservedResourceDisk": {
            "properties": {
                "diskMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved disk space in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "diskMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getNodesNodeReservedResourceMemory:getNodesNodeReservedResourceMemory": {
            "properties": {
                "memoryMb": {
                    "type": "integer",
                    "description": "`(int)` - Reserved memory in MB.\n"
                }
            },
            "type": "object",
            "required": [
                "memoryMb"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getPluginNode:getPluginNode": {
            "properties": {
                "healthy": {
                    "type": "boolean"
                },
                "healthyDescription": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            },
            "type": "object",
            "required": [
                "healthy",
                "healthyDescription",
                "name"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        },
        "nomad:index/getScalingPoliciesPolicy:getScalingPoliciesPolicy": {
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether or not the scaling policy is enabled.\n"
                },
                "id": {
                    "type": "string",
                    "description": "`(string)` - The scaling policy ID.\n"
                },
                "target": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - The scaling policy target.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` - An optional string to filter scaling policies based on policy type. If not provided, policies of all types are returned.\n"
                }
            },
            "type": "object",
            "required": [
                "enabled",
                "id",
                "target",
                "type"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        }
    },
    "provider": {
        "description": "The provider type for the nomad package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
        "properties": {
            "address": {
                "type": "string",
                "description": "URL of the root of the target Nomad agent."
            },
            "authJwt": {
                "$ref": "#/types/nomad:index/ProviderAuthJwt:ProviderAuthJwt",
                "description": "Authenticates to Nomad using a JWT authentication method."
            },
            "caFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "caPem": {
                "type": "string",
                "description": "PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "certFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "certPem": {
                "type": "string",
                "description": "PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "headers": {
                "type": "array",
                "items": {
                    "$ref": "#/types/nomad:index/ProviderHeader:ProviderHeader"
                },
                "description": "The headers to send with each Nomad request.",
                "secret": true
            },
            "httpAuth": {
                "type": "string",
                "description": "HTTP basic auth configuration.",
                "secret": true
            },
            "ignoreEnvVars": {
                "type": "object",
                "additionalProperties": {
                    "type": "boolean"
                },
                "description": "A set of environment variables that are ignored by the provider when configuring the Nomad API client."
            },
            "keyFile": {
                "type": "string",
                "description": "A path to a PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified."
            },
            "keyPem": {
                "type": "string",
                "description": "PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified.",
                "secret": true
            },
            "region": {
                "type": "string",
                "description": "Region of the target Nomad agent."
            },
            "secretId": {
                "type": "string",
                "description": "ACL token secret for API requests.",
                "secret": true
            },
            "skipVerify": {
                "type": "boolean",
                "description": "Skip TLS verification on client side."
            }
        },
        "inputProperties": {
            "address": {
                "type": "string",
                "description": "URL of the root of the target Nomad agent."
            },
            "authJwt": {
                "$ref": "#/types/nomad:index/ProviderAuthJwt:ProviderAuthJwt",
                "description": "Authenticates to Nomad using a JWT authentication method."
            },
            "caFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "caPem": {
                "type": "string",
                "description": "PEM-encoded certificate authority used to verify the remote agent's certificate."
            },
            "certFile": {
                "type": "string",
                "description": "A path to a PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "certPem": {
                "type": "string",
                "description": "PEM-encoded certificate provided to the remote agent; requires use of\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e keyFile \u003c/span\u003eor key_pem."
            },
            "headers": {
                "type": "array",
                "items": {
                    "$ref": "#/types/nomad:index/ProviderHeader:ProviderHeader"
                },
                "description": "The headers to send with each Nomad request.",
                "secret": true
            },
            "httpAuth": {
                "type": "string",
                "description": "HTTP basic auth configuration.",
                "secret": true
            },
            "ignoreEnvVars": {
                "type": "object",
                "additionalProperties": {
                    "type": "boolean"
                },
                "description": "A set of environment variables that are ignored by the provider when configuring the Nomad API client."
            },
            "keyFile": {
                "type": "string",
                "description": "A path to a PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified."
            },
            "keyPem": {
                "type": "string",
                "description": "PEM-encoded private key, required if\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e certFile \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" certPem \" pulumi-lang-dotnet=\" CertPem \" pulumi-lang-go=\" certPem \" pulumi-lang-python=\" cert_pem \" pulumi-lang-yaml=\" certPem \" pulumi-lang-java=\" certPem \"\u003e certPem \u003c/span\u003eis specified.",
                "secret": true
            },
            "region": {
                "type": "string",
                "description": "Region of the target Nomad agent."
            },
            "secretId": {
                "type": "string",
                "description": "ACL token secret for API requests.",
                "secret": true
            },
            "skipVerify": {
                "type": "boolean",
                "description": "Skip TLS verification on client side."
            }
        },
        "methods": {
            "terraformConfig": "pulumi:providers:nomad/terraformConfig"
        }
    },
    "resources": {
        "nomad:index/aclAuthMethod:AclAuthMethod": {
            "description": "Manages an ACL Auth Method in Nomad.\n\n## Example Usage\n\nCreating an ALC Auth Method:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myNomadAclAuthMethod = new nomad.AclAuthMethod(\"my_nomad_acl_auth_method\", {\n    name: \"my-nomad-acl-auth-method\",\n    type: \"OIDC\",\n    tokenLocality: \"global\",\n    maxTokenTtl: \"10m0s\",\n    tokenNameFormat: `${auth_method_type}-${value.user}`,\n    \"default\": true,\n    config: {\n        oidcDiscoveryUrl: \"https://uk.auth0.com/\",\n        oidcClientId: \"someclientid\",\n        oidcClientSecret: \"someclientsecret-t\",\n        boundAudiences: [\"someclientid\"],\n        allowedRedirectUris: [\n            \"http://localhost:4649/oidc/callback\",\n            \"http://localhost:4646/ui/settings/tokens\",\n        ],\n        listClaimMappings: {\n            \"http://nomad.internal/roles\": \"roles\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_nomad_acl_auth_method = nomad.AclAuthMethod(\"my_nomad_acl_auth_method\",\n    name=\"my-nomad-acl-auth-method\",\n    type=\"OIDC\",\n    token_locality=\"global\",\n    max_token_ttl=\"10m0s\",\n    token_name_format=\"${auth_method_type}-${value.user}\",\n    default=True,\n    config={\n        \"oidc_discovery_url\": \"https://uk.auth0.com/\",\n        \"oidc_client_id\": \"someclientid\",\n        \"oidc_client_secret\": \"someclientsecret-t\",\n        \"bound_audiences\": [\"someclientid\"],\n        \"allowed_redirect_uris\": [\n            \"http://localhost:4649/oidc/callback\",\n            \"http://localhost:4646/ui/settings/tokens\",\n        ],\n        \"list_claim_mappings\": {\n            \"http://nomad.internal/roles\": \"roles\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myNomadAclAuthMethod = new Nomad.Index.AclAuthMethod(\"my_nomad_acl_auth_method\", new()\n    {\n        Name = \"my-nomad-acl-auth-method\",\n        Type = \"OIDC\",\n        TokenLocality = \"global\",\n        MaxTokenTtl = \"10m0s\",\n        TokenNameFormat = \"${auth_method_type}-${value.user}\",\n        Default = true,\n        Config = new Nomad.Inputs.AclAuthMethodConfigArgs\n        {\n            OidcDiscoveryUrl = \"https://uk.auth0.com/\",\n            OidcClientId = \"someclientid\",\n            OidcClientSecret = \"someclientsecret-t\",\n            BoundAudiences = new[]\n            {\n                \"someclientid\",\n            },\n            AllowedRedirectUris = new[]\n            {\n                \"http://localhost:4649/oidc/callback\",\n                \"http://localhost:4646/ui/settings/tokens\",\n            },\n            ListClaimMappings = \n            {\n                { \"http://nomad.internal/roles\", \"roles\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewAclAuthMethod(ctx, \"my_nomad_acl_auth_method\", \u0026nomad.AclAuthMethodArgs{\n\t\t\tName:            pulumi.String(\"my-nomad-acl-auth-method\"),\n\t\t\tType:            pulumi.String(\"OIDC\"),\n\t\t\tTokenLocality:   pulumi.String(\"global\"),\n\t\t\tMaxTokenTtl:     pulumi.String(\"10m0s\"),\n\t\t\tTokenNameFormat: pulumi.Sprintf(\"${auth_method_type}-${value.user}\"),\n\t\t\tDefault:         pulumi.Bool(true),\n\t\t\tConfig: \u0026nomad.AclAuthMethodConfigArgs{\n\t\t\t\tOidcDiscoveryUrl: pulumi.String(\"https://uk.auth0.com/\"),\n\t\t\t\tOidcClientId:     pulumi.String(\"someclientid\"),\n\t\t\t\tOidcClientSecret: pulumi.String(\"someclientsecret-t\"),\n\t\t\t\tBoundAudiences: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"someclientid\"),\n\t\t\t\t},\n\t\t\t\tAllowedRedirectUris: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://localhost:4649/oidc/callback\"),\n\t\t\t\t\tpulumi.String(\"http://localhost:4646/ui/settings/tokens\"),\n\t\t\t\t},\n\t\t\t\tListClaimMappings: pulumi.StringMap{\n\t\t\t\t\t\"http://nomad.internal/roles\": pulumi.String(\"roles\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclAuthMethod;\nimport com.pulumi.nomad.AclAuthMethodArgs;\nimport com.pulumi.nomad.inputs.AclAuthMethodConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myNomadAclAuthMethod = new AclAuthMethod(\"myNomadAclAuthMethod\", AclAuthMethodArgs.builder()\n            .name(\"my-nomad-acl-auth-method\")\n            .type(\"OIDC\")\n            .tokenLocality(\"global\")\n            .maxTokenTtl(\"10m0s\")\n            .tokenNameFormat(\"${auth_method_type}-${value.user}\")\n            .default_(true)\n            .config(AclAuthMethodConfigArgs.builder()\n                .oidcDiscoveryUrl(\"https://uk.auth0.com/\")\n                .oidcClientId(\"someclientid\")\n                .oidcClientSecret(\"someclientsecret-t\")\n                .boundAudiences(\"someclientid\")\n                .allowedRedirectUris(                \n                    \"http://localhost:4649/oidc/callback\",\n                    \"http://localhost:4646/ui/settings/tokens\")\n                .listClaimMappings(Map.of(\"http://nomad.internal/roles\", \"roles\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myNomadAclAuthMethod:\n    type: nomad:AclAuthMethod\n    name: my_nomad_acl_auth_method\n    properties:\n      name: my-nomad-acl-auth-method\n      type: OIDC\n      tokenLocality: global\n      maxTokenTtl: 10m0s\n      tokenNameFormat: $${auth_method_type}-$${value.user}\n      default: true\n      config:\n        oidcDiscoveryUrl: https://uk.auth0.com/\n        oidcClientId: someclientid\n        oidcClientSecret: someclientsecret-t\n        boundAudiences:\n          - someclientid\n        allowedRedirectUris:\n          - http://localhost:4649/oidc/callback\n          - http://localhost:4646/ui/settings/tokens\n        listClaimMappings:\n          http://nomad.internal/roles: roles\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "config": {
                    "$ref": "#/types/nomad:index/AclAuthMethodConfig:AclAuthMethodConfig",
                    "description": "`(block: \u003crequired\u003e)` - Configuration specific to the auth method\nprovider.\n"
                },
                "default": {
                    "type": "boolean",
                    "description": "`(bool: false)` - Defines whether this ACL Auth Method is to be set\nas default.\n"
                },
                "maxTokenTtl": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines the maximum life of a token\ncreated by this method and is specified as a time duration such as \"15h\".\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The identifier of the ACL Auth Method.\n"
                },
                "tokenLocality": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether the ACL Auth Method\ncreates a local or global token when performing SSO login. This field must be\nset to either \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e.\n"
                },
                "tokenNameFormat": {
                    "type": "string",
                    "description": "`(string: \"${auth_method_type}-${auth_method_name}\")` -\nDefines the token name format for the generated tokens This can be lightly\ntemplated using HIL '${foo}' syntax.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - ACL Auth Method SSO workflow type. Valid values,\nare `OIDC` and `JWT`.\n"
                }
            },
            "required": [
                "config",
                "maxTokenTtl",
                "name",
                "tokenLocality",
                "type"
            ],
            "inputProperties": {
                "config": {
                    "$ref": "#/types/nomad:index/AclAuthMethodConfig:AclAuthMethodConfig",
                    "description": "`(block: \u003crequired\u003e)` - Configuration specific to the auth method\nprovider.\n"
                },
                "default": {
                    "type": "boolean",
                    "description": "`(bool: false)` - Defines whether this ACL Auth Method is to be set\nas default.\n"
                },
                "maxTokenTtl": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines the maximum life of a token\ncreated by this method and is specified as a time duration such as \"15h\".\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The identifier of the ACL Auth Method.\n"
                },
                "tokenLocality": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Defines whether the ACL Auth Method\ncreates a local or global token when performing SSO login. This field must be\nset to either \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e.\n"
                },
                "tokenNameFormat": {
                    "type": "string",
                    "description": "`(string: \"${auth_method_type}-${auth_method_name}\")` -\nDefines the token name format for the generated tokens This can be lightly\ntemplated using HIL '${foo}' syntax.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - ACL Auth Method SSO workflow type. Valid values,\nare `OIDC` and `JWT`.\n"
                }
            },
            "requiredInputs": [
                "config",
                "maxTokenTtl",
                "tokenLocality",
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AclAuthMethod resources.\n",
                "properties": {
                    "config": {
                        "$ref": "#/types/nomad:index/AclAuthMethodConfig:AclAuthMethodConfig",
                        "description": "`(block: \u003crequired\u003e)` - Configuration specific to the auth method\nprovider.\n"
                    },
                    "default": {
                        "type": "boolean",
                        "description": "`(bool: false)` - Defines whether this ACL Auth Method is to be set\nas default.\n"
                    },
                    "maxTokenTtl": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - Defines the maximum life of a token\ncreated by this method and is specified as a time duration such as \"15h\".\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The identifier of the ACL Auth Method.\n"
                    },
                    "tokenLocality": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - Defines whether the ACL Auth Method\ncreates a local or global token when performing SSO login. This field must be\nset to either \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e.\n"
                    },
                    "tokenNameFormat": {
                        "type": "string",
                        "description": "`(string: \"${auth_method_type}-${auth_method_name}\")` -\nDefines the token name format for the generated tokens This can be lightly\ntemplated using HIL '${foo}' syntax.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - ACL Auth Method SSO workflow type. Valid values,\nare `OIDC` and `JWT`.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/aclBindingRule:AclBindingRule": {
            "description": "Manages an ACL Binding Rule in Nomad.\n\n\u003e **Warning:** this resource will store the sensitive value placed in\n  `config.oidc_client_secret` in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n## Example Usage\n\nCreating an ALC Binding Rule associated to an ACL Auth Method also created and\nmanaged by Terraform:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myNomadAclAuthMethod = new nomad.AclAuthMethod(\"my_nomad_acl_auth_method\", {\n    name: \"my-nomad-acl-auth-method\",\n    type: \"OIDC\",\n    tokenLocality: \"global\",\n    maxTokenTtl: \"10m0s\",\n    \"default\": true,\n    config: {\n        oidcDiscoveryUrl: \"https://uk.auth0.com/\",\n        oidcClientId: \"someclientid\",\n        oidcClientSecret: \"someclientsecret-t\",\n        boundAudiences: [\"someclientid\"],\n        allowedRedirectUris: [\n            \"http://localhost:4649/oidc/callback\",\n            \"http://localhost:4646/ui/settings/tokens\",\n        ],\n        listClaimMappings: {\n            \"http://nomad.internal/roles\": \"roles\",\n        },\n    },\n});\nconst myNomadAclBindingRule = new nomad.AclBindingRule(\"my_nomad_acl_binding_rule\", {\n    description: \"engineering rule\",\n    authMethod: myNomadAclAuthMethod.name,\n    selector: \"engineering in list.roles\",\n    bindType: \"role\",\n    bindName: \"engineering-read-only\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_nomad_acl_auth_method = nomad.AclAuthMethod(\"my_nomad_acl_auth_method\",\n    name=\"my-nomad-acl-auth-method\",\n    type=\"OIDC\",\n    token_locality=\"global\",\n    max_token_ttl=\"10m0s\",\n    default=True,\n    config={\n        \"oidc_discovery_url\": \"https://uk.auth0.com/\",\n        \"oidc_client_id\": \"someclientid\",\n        \"oidc_client_secret\": \"someclientsecret-t\",\n        \"bound_audiences\": [\"someclientid\"],\n        \"allowed_redirect_uris\": [\n            \"http://localhost:4649/oidc/callback\",\n            \"http://localhost:4646/ui/settings/tokens\",\n        ],\n        \"list_claim_mappings\": {\n            \"http://nomad.internal/roles\": \"roles\",\n        },\n    })\nmy_nomad_acl_binding_rule = nomad.AclBindingRule(\"my_nomad_acl_binding_rule\",\n    description=\"engineering rule\",\n    auth_method=my_nomad_acl_auth_method.name,\n    selector=\"engineering in list.roles\",\n    bind_type=\"role\",\n    bind_name=\"engineering-read-only\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myNomadAclAuthMethod = new Nomad.Index.AclAuthMethod(\"my_nomad_acl_auth_method\", new()\n    {\n        Name = \"my-nomad-acl-auth-method\",\n        Type = \"OIDC\",\n        TokenLocality = \"global\",\n        MaxTokenTtl = \"10m0s\",\n        Default = true,\n        Config = new Nomad.Inputs.AclAuthMethodConfigArgs\n        {\n            OidcDiscoveryUrl = \"https://uk.auth0.com/\",\n            OidcClientId = \"someclientid\",\n            OidcClientSecret = \"someclientsecret-t\",\n            BoundAudiences = new[]\n            {\n                \"someclientid\",\n            },\n            AllowedRedirectUris = new[]\n            {\n                \"http://localhost:4649/oidc/callback\",\n                \"http://localhost:4646/ui/settings/tokens\",\n            },\n            ListClaimMappings = \n            {\n                { \"http://nomad.internal/roles\", \"roles\" },\n            },\n        },\n    });\n\n    var myNomadAclBindingRule = new Nomad.Index.AclBindingRule(\"my_nomad_acl_binding_rule\", new()\n    {\n        Description = \"engineering rule\",\n        AuthMethod = myNomadAclAuthMethod.Name,\n        Selector = \"engineering in list.roles\",\n        BindType = \"role\",\n        BindName = \"engineering-read-only\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyNomadAclAuthMethod, err := nomad.NewAclAuthMethod(ctx, \"my_nomad_acl_auth_method\", \u0026nomad.AclAuthMethodArgs{\n\t\t\tName:          pulumi.String(\"my-nomad-acl-auth-method\"),\n\t\t\tType:          pulumi.String(\"OIDC\"),\n\t\t\tTokenLocality: pulumi.String(\"global\"),\n\t\t\tMaxTokenTtl:   pulumi.String(\"10m0s\"),\n\t\t\tDefault:       pulumi.Bool(true),\n\t\t\tConfig: \u0026nomad.AclAuthMethodConfigArgs{\n\t\t\t\tOidcDiscoveryUrl: pulumi.String(\"https://uk.auth0.com/\"),\n\t\t\t\tOidcClientId:     pulumi.String(\"someclientid\"),\n\t\t\t\tOidcClientSecret: pulumi.String(\"someclientsecret-t\"),\n\t\t\t\tBoundAudiences: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"someclientid\"),\n\t\t\t\t},\n\t\t\t\tAllowedRedirectUris: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://localhost:4649/oidc/callback\"),\n\t\t\t\t\tpulumi.String(\"http://localhost:4646/ui/settings/tokens\"),\n\t\t\t\t},\n\t\t\t\tListClaimMappings: pulumi.StringMap{\n\t\t\t\t\t\"http://nomad.internal/roles\": pulumi.String(\"roles\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewAclBindingRule(ctx, \"my_nomad_acl_binding_rule\", \u0026nomad.AclBindingRuleArgs{\n\t\t\tDescription: pulumi.String(\"engineering rule\"),\n\t\t\tAuthMethod:  myNomadAclAuthMethod.Name,\n\t\t\tSelector:    pulumi.String(\"engineering in list.roles\"),\n\t\t\tBindType:    pulumi.String(\"role\"),\n\t\t\tBindName:    pulumi.String(\"engineering-read-only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclAuthMethod;\nimport com.pulumi.nomad.AclAuthMethodArgs;\nimport com.pulumi.nomad.inputs.AclAuthMethodConfigArgs;\nimport com.pulumi.nomad.AclBindingRule;\nimport com.pulumi.nomad.AclBindingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myNomadAclAuthMethod = new AclAuthMethod(\"myNomadAclAuthMethod\", AclAuthMethodArgs.builder()\n            .name(\"my-nomad-acl-auth-method\")\n            .type(\"OIDC\")\n            .tokenLocality(\"global\")\n            .maxTokenTtl(\"10m0s\")\n            .default_(true)\n            .config(AclAuthMethodConfigArgs.builder()\n                .oidcDiscoveryUrl(\"https://uk.auth0.com/\")\n                .oidcClientId(\"someclientid\")\n                .oidcClientSecret(\"someclientsecret-t\")\n                .boundAudiences(\"someclientid\")\n                .allowedRedirectUris(                \n                    \"http://localhost:4649/oidc/callback\",\n                    \"http://localhost:4646/ui/settings/tokens\")\n                .listClaimMappings(Map.of(\"http://nomad.internal/roles\", \"roles\"))\n                .build())\n            .build());\n\n        var myNomadAclBindingRule = new AclBindingRule(\"myNomadAclBindingRule\", AclBindingRuleArgs.builder()\n            .description(\"engineering rule\")\n            .authMethod(myNomadAclAuthMethod.name())\n            .selector(\"engineering in list.roles\")\n            .bindType(\"role\")\n            .bindName(\"engineering-read-only\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myNomadAclAuthMethod:\n    type: nomad:AclAuthMethod\n    name: my_nomad_acl_auth_method\n    properties:\n      name: my-nomad-acl-auth-method\n      type: OIDC\n      tokenLocality: global\n      maxTokenTtl: 10m0s\n      default: true\n      config:\n        oidcDiscoveryUrl: https://uk.auth0.com/\n        oidcClientId: someclientid\n        oidcClientSecret: someclientsecret-t\n        boundAudiences:\n          - someclientid\n        allowedRedirectUris:\n          - http://localhost:4649/oidc/callback\n          - http://localhost:4646/ui/settings/tokens\n        listClaimMappings:\n          http://nomad.internal/roles: roles\n  myNomadAclBindingRule:\n    type: nomad:AclBindingRule\n    name: my_nomad_acl_binding_rule\n    properties:\n      description: engineering rule\n      authMethod: ${myNomadAclAuthMethod.name}\n      selector: engineering in list.roles\n      bindType: role\n      bindName: engineering-read-only\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "authMethod": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Name of the auth method for which this\nrule applies to.\n"
                },
                "bindName": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Target of the binding. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e is required. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e than \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e must not be defined.\n"
                },
                "bindType": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Adjusts how this binding rule is applied\nat login time. Valid values are \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e.\n"
                },
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - Description for this ACL binding rule.\n"
                },
                "selector": {
                    "type": "string",
                    "description": "`(string: \"\")` - A boolean expression that matches against verified\nidentity attributes returned from the auth method during login.\n"
                }
            },
            "required": [
                "authMethod",
                "bindType"
            ],
            "inputProperties": {
                "authMethod": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Name of the auth method for which this\nrule applies to.\n"
                },
                "bindName": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Target of the binding. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e is required. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e than \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e must not be defined.\n"
                },
                "bindType": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - Adjusts how this binding rule is applied\nat login time. Valid values are \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e.\n"
                },
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - Description for this ACL binding rule.\n"
                },
                "selector": {
                    "type": "string",
                    "description": "`(string: \"\")` - A boolean expression that matches against verified\nidentity attributes returned from the auth method during login.\n"
                }
            },
            "requiredInputs": [
                "authMethod",
                "bindType"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AclBindingRule resources.\n",
                "properties": {
                    "authMethod": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - Name of the auth method for which this\nrule applies to.\n"
                    },
                    "bindName": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Target of the binding. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e is required. If \u003cspan pulumi-lang-nodejs=\"`bindType`\" pulumi-lang-dotnet=\"`BindType`\" pulumi-lang-go=\"`bindType`\" pulumi-lang-python=\"`bind_type`\" pulumi-lang-yaml=\"`bindType`\" pulumi-lang-java=\"`bindType`\"\u003e`bindType`\u003c/span\u003e is\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e than \u003cspan pulumi-lang-nodejs=\"`bindName`\" pulumi-lang-dotnet=\"`BindName`\" pulumi-lang-go=\"`bindName`\" pulumi-lang-python=\"`bind_name`\" pulumi-lang-yaml=\"`bindName`\" pulumi-lang-java=\"`bindName`\"\u003e`bindName`\u003c/span\u003e must not be defined.\n"
                    },
                    "bindType": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - Adjusts how this binding rule is applied\nat login time. Valid values are \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - Description for this ACL binding rule.\n"
                    },
                    "selector": {
                        "type": "string",
                        "description": "`(string: \"\")` - A boolean expression that matches against verified\nidentity attributes returned from the auth method during login.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/aclPolicy:AclPolicy": {
            "description": "Manages an ACL policy registered in Nomad.\n\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the policy.\n"
                },
                "jobAcl": {
                    "$ref": "#/types/nomad:index/AclPolicyJobAcl:AclPolicyJobAcl",
                    "description": "`(``JobACL``: \u003coptional\u003e)` - Options for assigning the\nACL rules to a job, group, or task.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n"
                },
                "rulesHcl": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register,\nas HCL or JSON.\n"
                }
            },
            "required": [
                "name",
                "rulesHcl"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the policy.\n"
                },
                "jobAcl": {
                    "$ref": "#/types/nomad:index/AclPolicyJobAcl:AclPolicyJobAcl",
                    "description": "`(``JobACL``: \u003coptional\u003e)` - Options for assigning the\nACL rules to a job, group, or task.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n",
                    "willReplaceOnChanges": true
                },
                "rulesHcl": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register,\nas HCL or JSON.\n"
                }
            },
            "requiredInputs": [
                "rulesHcl"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AclPolicy resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - A description of the policy.\n"
                    },
                    "jobAcl": {
                        "$ref": "#/types/nomad:index/AclPolicyJobAcl:AclPolicyJobAcl",
                        "description": "`(``JobACL``: \u003coptional\u003e)` - Options for assigning the\nACL rules to a job, group, or task.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n",
                        "willReplaceOnChanges": true
                    },
                    "rulesHcl": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register,\nas HCL or JSON.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/aclRole:AclRole": {
            "description": "Manages an ACL Role in Nomad.\n\n## Example Usage\n\nCreating an ALC Role linked to an ACL policy also created by Terraform:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myNomadAclPolicy = new nomad.AclPolicy(\"my_nomad_acl_policy\", {\n    name: \"my-nomad-acl-policy\",\n    rulesHcl: `namespace \\\"default\\\" {\n  policy       = \\\"read\\\"\n  capabilities = [\\\"submit-job\\\"]\n}\n`,\n});\nconst myNomadAclRole = new nomad.AclRole(\"my_nomad_acl_role\", {\n    name: \"my-nomad-acl-role\",\n    description: \"An ACL Role for cluster developers\",\n    policies: [{\n        name: myNomadAclPolicy.name,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_nomad_acl_policy = nomad.AclPolicy(\"my_nomad_acl_policy\",\n    name=\"my-nomad-acl-policy\",\n    rules_hcl=\"\"\"namespace \\\"default\\\" {\n  policy       = \\\"read\\\"\n  capabilities = [\\\"submit-job\\\"]\n}\n\"\"\")\nmy_nomad_acl_role = nomad.AclRole(\"my_nomad_acl_role\",\n    name=\"my-nomad-acl-role\",\n    description=\"An ACL Role for cluster developers\",\n    policies=[{\n        \"name\": my_nomad_acl_policy.name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myNomadAclPolicy = new Nomad.Index.AclPolicy(\"my_nomad_acl_policy\", new()\n    {\n        Name = \"my-nomad-acl-policy\",\n        RulesHcl = @\"namespace \\\"\"default\\\"\" {\n  policy       = \\\"\"read\\\"\"\n  capabilities = [\\\"\"submit-job\\\"\"]\n}\n\",\n    });\n\n    var myNomadAclRole = new Nomad.Index.AclRole(\"my_nomad_acl_role\", new()\n    {\n        Name = \"my-nomad-acl-role\",\n        Description = \"An ACL Role for cluster developers\",\n        Policies = new[]\n        {\n            new Nomad.Inputs.AclRolePolicyArgs\n            {\n                Name = myNomadAclPolicy.Name,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyNomadAclPolicy, err := nomad.NewAclPolicy(ctx, \"my_nomad_acl_policy\", \u0026nomad.AclPolicyArgs{\n\t\t\tName:     pulumi.String(\"my-nomad-acl-policy\"),\n\t\t\tRulesHcl: pulumi.Sprintf(\"namespace \\\\\\\"default\\\\\\\" {\\n  policy       = \\\\\\\"read\\\\\\\"\\n  capabilities = [\\\\\\\"submit-job\\\\\\\"]\\n}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewAclRole(ctx, \"my_nomad_acl_role\", \u0026nomad.AclRoleArgs{\n\t\t\tName:        pulumi.String(\"my-nomad-acl-role\"),\n\t\t\tDescription: pulumi.String(\"An ACL Role for cluster developers\"),\n\t\t\tPolicies: nomad.AclRolePolicyArray{\n\t\t\t\t\u0026nomad.AclRolePolicyArgs{\n\t\t\t\t\tName: myNomadAclPolicy.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclPolicy;\nimport com.pulumi.nomad.AclPolicyArgs;\nimport com.pulumi.nomad.AclRole;\nimport com.pulumi.nomad.AclRoleArgs;\nimport com.pulumi.nomad.inputs.AclRolePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myNomadAclPolicy = new AclPolicy(\"myNomadAclPolicy\", AclPolicyArgs.builder()\n            .name(\"my-nomad-acl-policy\")\n            .rulesHcl(\"\"\"\nnamespace \\\"default\\\" {\n  policy       = \\\"read\\\"\n  capabilities = [\\\"submit-job\\\"]\n}\n            \"\"\")\n            .build());\n\n        var myNomadAclRole = new AclRole(\"myNomadAclRole\", AclRoleArgs.builder()\n            .name(\"my-nomad-acl-role\")\n            .description(\"An ACL Role for cluster developers\")\n            .policies(AclRolePolicyArgs.builder()\n                .name(myNomadAclPolicy.name())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myNomadAclPolicy:\n    type: nomad:AclPolicy\n    name: my_nomad_acl_policy\n    properties:\n      name: my-nomad-acl-policy\n      rulesHcl: |\n        namespace \\\"default\\\" {\n          policy       = \\\"read\\\"\n          capabilities = [\\\"submit-job\\\"]\n        }\n  myNomadAclRole:\n    type: nomad:AclRole\n    name: my_nomad_acl_role\n    properties:\n      name: my-nomad-acl-role\n      description: An ACL Role for cluster developers\n      policies:\n        - name: ${myNomadAclPolicy.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the ACL Role.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A human-friendly name for this ACL Role.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/AclRolePolicy:AclRolePolicy"
                    },
                    "description": "`(set: \u003crequired\u003e)` - A set of policy names to associate with this\nACL Role. It may be used multiple times.\n"
                }
            },
            "required": [
                "name",
                "policies"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the ACL Role.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A human-friendly name for this ACL Role.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/AclRolePolicy:AclRolePolicy"
                    },
                    "description": "`(set: \u003crequired\u003e)` - A set of policy names to associate with this\nACL Role. It may be used multiple times.\n"
                }
            },
            "requiredInputs": [
                "policies"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AclRole resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - A description of the ACL Role.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A human-friendly name for this ACL Role.\n"
                    },
                    "policies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/AclRolePolicy:AclRolePolicy"
                        },
                        "description": "`(set: \u003crequired\u003e)` - A set of policy names to associate with this\nACL Role. It may be used multiple times.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/aclToken:AclToken": {
            "description": "Manages an ACL token in Nomad.\n\n\u003e **Warning:** this resource will store any tokens it creates in\n  Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n\u003e **Note:** \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secretId`\u003c/span\u003e is deprecated on this resource. Use the \u003cspan pulumi-lang-nodejs=\"`nomad.AclToken`\" pulumi-lang-dotnet=\"`nomad.AclToken`\" pulumi-lang-go=\"`AclToken`\" pulumi-lang-python=\"`AclToken`\" pulumi-lang-yaml=\"`nomad.AclToken`\" pulumi-lang-java=\"`nomad.AclToken`\"\u003e`nomad.AclToken`\u003c/span\u003e\nephemeral resource when the token secret is needed during a run without\nstoring it in Terraform state.\n\n## Example Usage\n\nCreating a token with limited policies:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst dakota = new nomad.AclToken(\"dakota\", {\n    name: \"Dakota\",\n    type: \"client\",\n    policies: [\n        \"dev\",\n        \"qa\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndakota = nomad.AclToken(\"dakota\",\n    name=\"Dakota\",\n    type=\"client\",\n    policies=[\n        \"dev\",\n        \"qa\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dakota = new Nomad.Index.AclToken(\"dakota\", new()\n    {\n        Name = \"Dakota\",\n        Type = \"client\",\n        Policies = new[]\n        {\n            \"dev\",\n            \"qa\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewAclToken(ctx, \"dakota\", \u0026nomad.AclTokenArgs{\n\t\t\tName: pulumi.String(\"Dakota\"),\n\t\t\tType: pulumi.String(\"client\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dev\"),\n\t\t\t\tpulumi.String(\"qa\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclToken;\nimport com.pulumi.nomad.AclTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dakota = new AclToken(\"dakota\", AclTokenArgs.builder()\n            .name(\"Dakota\")\n            .type(\"client\")\n            .policies(            \n                \"dev\",\n                \"qa\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dakota:\n    type: nomad:AclToken\n    properties:\n      name: Dakota\n      type: client\n      policies:\n        - dev\n        - qa\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating a global token that will be replicated to all regions:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst dakota = new nomad.AclToken(\"dakota\", {\n    name: \"Dakota\",\n    type: \"client\",\n    policies: [\n        \"dev\",\n        \"qa\",\n    ],\n    global: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndakota = nomad.AclToken(\"dakota\",\n    name=\"Dakota\",\n    type=\"client\",\n    policies=[\n        \"dev\",\n        \"qa\",\n    ],\n    global_=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dakota = new Nomad.Index.AclToken(\"dakota\", new()\n    {\n        Name = \"Dakota\",\n        Type = \"client\",\n        Policies = new[]\n        {\n            \"dev\",\n            \"qa\",\n        },\n        Global = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewAclToken(ctx, \"dakota\", \u0026nomad.AclTokenArgs{\n\t\t\tName: pulumi.String(\"Dakota\"),\n\t\t\tType: pulumi.String(\"client\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dev\"),\n\t\t\t\tpulumi.String(\"qa\"),\n\t\t\t},\n\t\t\tGlobal: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclToken;\nimport com.pulumi.nomad.AclTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dakota = new AclToken(\"dakota\", AclTokenArgs.builder()\n            .name(\"Dakota\")\n            .type(\"client\")\n            .policies(            \n                \"dev\",\n                \"qa\")\n            .global(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dakota:\n    type: nomad:AclToken\n    properties:\n      name: Dakota\n      type: client\n      policies:\n        - dev\n        - qa\n      global: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating a token with full access to the cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst iman = new nomad.AclToken(\"iman\", {\n    name: \"Iman\",\n    type: \"management\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\niman = nomad.AclToken(\"iman\",\n    name=\"Iman\",\n    type=\"management\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var iman = new Nomad.Index.AclToken(\"iman\", new()\n    {\n        Name = \"Iman\",\n        Type = \"management\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewAclToken(ctx, \"iman\", \u0026nomad.AclTokenArgs{\n\t\t\tName: pulumi.String(\"Iman\"),\n\t\t\tType: pulumi.String(\"management\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclToken;\nimport com.pulumi.nomad.AclTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var iman = new AclToken(\"iman\", AclTokenArgs.builder()\n            .name(\"Iman\")\n            .type(\"management\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  iman:\n    type: nomad:AclToken\n    properties:\n      name: Iman\n      type: management\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAccessing the token:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst token = new nomad.AclToken(\"token\", {\n    type: \"client\",\n    policies: [\"dev\"],\n});\nexport const nomadToken = token.secretId;\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ntoken = nomad.AclToken(\"token\",\n    type=\"client\",\n    policies=[\"dev\"])\npulumi.export(\"nomadToken\", token.secret_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var token = new Nomad.Index.AclToken(\"token\", new()\n    {\n        Type = \"client\",\n        Policies = new[]\n        {\n            \"dev\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nomadToken\"] = token.SecretId,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttoken, err := nomad.NewAclToken(ctx, \"token\", \u0026nomad.AclTokenArgs{\n\t\t\tType: pulumi.String(\"client\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dev\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nomadToken\", token.SecretId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.AclToken;\nimport com.pulumi.nomad.AclTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var token = new AclToken(\"token\", AclTokenArgs.builder()\n            .type(\"client\")\n            .policies(\"dev\")\n            .build());\n\n        ctx.export(\"nomadToken\", token.secretId());\n    }\n}\n```\n```yaml\nresources:\n  token:\n    type: nomad:AclToken\n    properties:\n      type: client\n      policies:\n        - dev\noutputs:\n  nomadToken: ${token.secretId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "accessorId": {
                    "type": "string",
                    "description": "`(string)` - A non-sensitive identifier for this token that\ncan be logged and shared safely without granting any access to the cluster.\n"
                },
                "createTime": {
                    "type": "string",
                    "description": "`(string)` - The timestamp the token was created.\n"
                },
                "expirationTime": {
                    "type": "string",
                    "description": "`(string)` - The timestamp after which the token is\nconsidered expired and eligible for destruction.\n"
                },
                "expirationTtl": {
                    "type": "string",
                    "description": "`(string: \"\")` - Provides a TTL for the token in the form of\na time duration such as `\"5m\"` or `\"1h\"`.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n"
                },
                "global": {
                    "type": "boolean",
                    "description": "`(bool: false)` - Whether the token should be replicated to all\nregions, or if it will only be used in the region it was created in.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \"\")` - A human-friendly name for this token.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`(set: [])` - A set of policy names to associate with this\ntoken. Must be set on \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e-type tokens, must not be set on\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e-type tokens. Policies do not need to exist before being\nused here.\n"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/AclTokenRole:AclTokenRole"
                    },
                    "description": "`(set: [])` - The list of roles attached to the token. Each entry has\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e attributes. It may be used multiple times.\n"
                },
                "secretId": {
                    "type": "string",
                    "description": "`(string)` - The token value itself, which is presented for\naccess to the cluster. This attribute is deprecated and will be removed in a\nfuture release.\n",
                    "deprecationMessage": "Use the\u003cspan pulumi-lang-nodejs=\" nomad.AclToken \" pulumi-lang-dotnet=\" nomad.AclToken \" pulumi-lang-go=\" AclToken \" pulumi-lang-python=\" AclToken \" pulumi-lang-yaml=\" nomad.AclToken \" pulumi-lang-java=\" nomad.AclToken \"\u003e nomad.AclToken \u003c/span\u003eephemeral resource when the token secret is needed during a run without storing it in Terraform state. This attribute will be removed in a future release.",
                    "secret": true
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of token this is. Use \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e\nfor tokens that will have policies associated with them. Use \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e\nfor tokens that can perform any action.\n"
                }
            },
            "required": [
                "accessorId",
                "createTime",
                "expirationTime",
                "name",
                "secretId",
                "type"
            ],
            "inputProperties": {
                "expirationTtl": {
                    "type": "string",
                    "description": "`(string: \"\")` - Provides a TTL for the token in the form of\na time duration such as `\"5m\"` or `\"1h\"`.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n",
                    "willReplaceOnChanges": true
                },
                "global": {
                    "type": "boolean",
                    "description": "`(bool: false)` - Whether the token should be replicated to all\nregions, or if it will only be used in the region it was created in.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \"\")` - A human-friendly name for this token.\n"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`(set: [])` - A set of policy names to associate with this\ntoken. Must be set on \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e-type tokens, must not be set on\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e-type tokens. Policies do not need to exist before being\nused here.\n"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/AclTokenRole:AclTokenRole"
                    },
                    "description": "`(set: [])` - The list of roles attached to the token. Each entry has\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e attributes. It may be used multiple times.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of token this is. Use \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e\nfor tokens that will have policies associated with them. Use \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e\nfor tokens that can perform any action.\n"
                }
            },
            "requiredInputs": [
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering AclToken resources.\n",
                "properties": {
                    "accessorId": {
                        "type": "string",
                        "description": "`(string)` - A non-sensitive identifier for this token that\ncan be logged and shared safely without granting any access to the cluster.\n"
                    },
                    "createTime": {
                        "type": "string",
                        "description": "`(string)` - The timestamp the token was created.\n"
                    },
                    "expirationTime": {
                        "type": "string",
                        "description": "`(string)` - The timestamp after which the token is\nconsidered expired and eligible for destruction.\n"
                    },
                    "expirationTtl": {
                        "type": "string",
                        "description": "`(string: \"\")` - Provides a TTL for the token in the form of\na time duration such as `\"5m\"` or `\"1h\"`.\n\nIn addition to the above arguments, the following attributes are exported and\ncan be referenced:\n",
                        "willReplaceOnChanges": true
                    },
                    "global": {
                        "type": "boolean",
                        "description": "`(bool: false)` - Whether the token should be replicated to all\nregions, or if it will only be used in the region it was created in.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \"\")` - A human-friendly name for this token.\n"
                    },
                    "policies": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "`(set: [])` - A set of policy names to associate with this\ntoken. Must be set on \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e-type tokens, must not be set on\n\u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e-type tokens. Policies do not need to exist before being\nused here.\n"
                    },
                    "roles": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/AclTokenRole:AclTokenRole"
                        },
                        "description": "`(set: [])` - The list of roles attached to the token. Each entry has\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e attributes. It may be used multiple times.\n"
                    },
                    "secretId": {
                        "type": "string",
                        "description": "`(string)` - The token value itself, which is presented for\naccess to the cluster. This attribute is deprecated and will be removed in a\nfuture release.\n",
                        "deprecationMessage": "Use the\u003cspan pulumi-lang-nodejs=\" nomad.AclToken \" pulumi-lang-dotnet=\" nomad.AclToken \" pulumi-lang-go=\" AclToken \" pulumi-lang-python=\" AclToken \" pulumi-lang-yaml=\" nomad.AclToken \" pulumi-lang-java=\" nomad.AclToken \"\u003e nomad.AclToken \u003c/span\u003eephemeral resource when the token secret is needed during a run without storing it in Terraform state. This attribute will be removed in a future release.",
                        "secret": true
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The type of token this is. Use \u003cspan pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\"\u003e`client`\u003c/span\u003e\nfor tokens that will have policies associated with them. Use \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e\nfor tokens that can perform any action.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/csiVolume:CsiVolume": {
            "description": "Creates and registers a CSI volume in Nomad.\n\nThis can be used to create and register CSI volumes in a Nomad cluster.\n\n\u003e **Warning:** This resource will store any sensitive values placed in\n  \u003cspan pulumi-lang-nodejs=\"`secrets`\" pulumi-lang-dotnet=\"`Secrets`\" pulumi-lang-go=\"`secrets`\" pulumi-lang-python=\"`secrets`\" pulumi-lang-yaml=\"`secrets`\" pulumi-lang-java=\"`secrets`\"\u003e`secrets`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mountOptions`\" pulumi-lang-dotnet=\"`MountOptions`\" pulumi-lang-go=\"`mountOptions`\" pulumi-lang-python=\"`mount_options`\" pulumi-lang-yaml=\"`mountOptions`\" pulumi-lang-java=\"`mountOptions`\"\u003e`mountOptions`\u003c/span\u003e in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n  [\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\n  deletions.\n\n## Example Usage\n\nCreating a volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\n// It can sometimes be helpful to wait for a particular plugin to be available\nconst ebs = nomad.getPlugin({\n    pluginId: \"aws-ebs0\",\n    waitForHealthy: true,\n});\nconst mysqlVolume = new nomad.CsiVolume(\"mysql_volume\", {\n    pluginId: \"aws-ebs0\",\n    volumeId: \"mysql_volume\",\n    name: \"mysql_volume\",\n    capacityMin: \"10GiB\",\n    capacityMax: \"20GiB\",\n    capabilities: [{\n        accessMode: \"single-node-writer\",\n        attachmentMode: \"file-system\",\n    }],\n    mountOptions: {\n        fsType: \"ext4\",\n    },\n    topologyRequest: {\n        required: {\n            topologies: [\n                {\n                    segments: {\n                        rack: \"R1\",\n                        zone: \"us-east-1a\",\n                    },\n                },\n                {\n                    segments: {\n                        rack: \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n}, {\n    dependsOn: [ebs],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\n# It can sometimes be helpful to wait for a particular plugin to be available\nebs = nomad.get_plugin(plugin_id=\"aws-ebs0\",\n    wait_for_healthy=True)\nmysql_volume = nomad.CsiVolume(\"mysql_volume\",\n    plugin_id=\"aws-ebs0\",\n    volume_id=\"mysql_volume\",\n    name=\"mysql_volume\",\n    capacity_min=\"10GiB\",\n    capacity_max=\"20GiB\",\n    capabilities=[{\n        \"access_mode\": \"single-node-writer\",\n        \"attachment_mode\": \"file-system\",\n    }],\n    mount_options={\n        \"fs_type\": \"ext4\",\n    },\n    topology_request={\n        \"required\": {\n            \"topologies\": [\n                {\n                    \"segments\": {\n                        \"rack\": \"R1\",\n                        \"zone\": \"us-east-1a\",\n                    },\n                },\n                {\n                    \"segments\": {\n                        \"rack\": \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ebs]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // It can sometimes be helpful to wait for a particular plugin to be available\n    var ebs = Nomad.Index.GetPlugin.Invoke(new()\n    {\n        PluginId = \"aws-ebs0\",\n        WaitForHealthy = true,\n    });\n\n    var mysqlVolume = new Nomad.Index.CsiVolume(\"mysql_volume\", new()\n    {\n        PluginId = \"aws-ebs0\",\n        VolumeId = \"mysql_volume\",\n        Name = \"mysql_volume\",\n        CapacityMin = \"10GiB\",\n        CapacityMax = \"20GiB\",\n        Capabilities = new[]\n        {\n            new Nomad.Inputs.CsiVolumeCapabilityArgs\n            {\n                AccessMode = \"single-node-writer\",\n                AttachmentMode = \"file-system\",\n            },\n        },\n        MountOptions = new Nomad.Inputs.CsiVolumeMountOptionsArgs\n        {\n            FsType = \"ext4\",\n        },\n        TopologyRequest = new Nomad.Inputs.CsiVolumeTopologyRequestArgs\n        {\n            Required = new Nomad.Inputs.CsiVolumeTopologyRequestRequiredArgs\n            {\n                Topologies = new[]\n                {\n                    new Nomad.Inputs.CsiVolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R1\" },\n                            { \"zone\", \"us-east-1a\" },\n                        },\n                    },\n                    new Nomad.Inputs.CsiVolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R2\" },\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            ebs,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// It can sometimes be helpful to wait for a particular plugin to be available\n\t\tebs, err := nomad.GetPlugin(ctx, \u0026nomad.GetPluginArgs{\n\t\t\tPluginId:       \"aws-ebs0\",\n\t\t\tWaitForHealthy: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewCsiVolume(ctx, \"mysql_volume\", \u0026nomad.CsiVolumeArgs{\n\t\t\tPluginId:    pulumi.String(\"aws-ebs0\"),\n\t\t\tVolumeId:    pulumi.String(\"mysql_volume\"),\n\t\t\tName:        pulumi.String(\"mysql_volume\"),\n\t\t\tCapacityMin: pulumi.String(\"10GiB\"),\n\t\t\tCapacityMax: pulumi.String(\"20GiB\"),\n\t\t\tCapabilities: nomad.CsiVolumeCapabilityArray{\n\t\t\t\t\u0026nomad.CsiVolumeCapabilityArgs{\n\t\t\t\t\tAccessMode:     pulumi.String(\"single-node-writer\"),\n\t\t\t\t\tAttachmentMode: pulumi.String(\"file-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMountOptions: \u0026nomad.CsiVolumeMountOptionsArgs{\n\t\t\t\tFsType: pulumi.String(\"ext4\"),\n\t\t\t},\n\t\t\tTopologyRequest: \u0026nomad.CsiVolumeTopologyRequestArgs{\n\t\t\t\tRequired: \u0026nomad.CsiVolumeTopologyRequestRequiredArgs{\n\t\t\t\t\tTopologies: nomad.CsiVolumeTopologyRequestRequiredTopologyArray{\n\t\t\t\t\t\t\u0026nomad.CsiVolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R1\"),\n\t\t\t\t\t\t\t\t\"zone\": pulumi.String(\"us-east-1a\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026nomad.CsiVolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tebs,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginArgs;\nimport com.pulumi.nomad.CsiVolume;\nimport com.pulumi.nomad.CsiVolumeArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeCapabilityArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeMountOptionsArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeTopologyRequestArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeTopologyRequestRequiredArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // It can sometimes be helpful to wait for a particular plugin to be available\n        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .waitForHealthy(true)\n            .build());\n\n        var mysqlVolume = new CsiVolume(\"mysqlVolume\", CsiVolumeArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .volumeId(\"mysql_volume\")\n            .name(\"mysql_volume\")\n            .capacityMin(\"10GiB\")\n            .capacityMax(\"20GiB\")\n            .capabilities(CsiVolumeCapabilityArgs.builder()\n                .accessMode(\"single-node-writer\")\n                .attachmentMode(\"file-system\")\n                .build())\n            .mountOptions(CsiVolumeMountOptionsArgs.builder()\n                .fsType(\"ext4\")\n                .build())\n            .topologyRequest(CsiVolumeTopologyRequestArgs.builder()\n                .required(CsiVolumeTopologyRequestRequiredArgs.builder()\n                    .topologies(                    \n                        CsiVolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.ofEntries(\n                                Map.entry(\"rack\", \"R1\"),\n                                Map.entry(\"zone\", \"us-east-1a\")\n                            ))\n                            .build(),\n                        CsiVolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.of(\"rack\", \"R2\"))\n                            .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(ebs)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mysqlVolume:\n    type: nomad:CsiVolume\n    name: mysql_volume\n    properties:\n      pluginId: aws-ebs0\n      volumeId: mysql_volume\n      name: mysql_volume\n      capacityMin: 10GiB\n      capacityMax: 20GiB\n      capabilities:\n        - accessMode: single-node-writer\n          attachmentMode: file-system\n      mountOptions:\n        fsType: ext4\n      topologyRequest:\n        required:\n          topologies:\n            - segments:\n                rack: R1\n                zone: us-east-1a\n            - segments:\n                rack: R2\n    options:\n      dependsOn:\n        - ${ebs}\nvariables:\n  # It can sometimes be helpful to wait for a particular plugin to be available\n  ebs:\n    fn::invoke:\n      function: nomad:getPlugin\n      arguments:\n        pluginId: aws-ebs0\n        waitForHealthy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Importing CSI Volumes\n\nCSI volumes are imported using the pattern `\u003cvolume ID\u003e@\u003cnamespace\u003e` .\n\n```console\n$ terraform import nomad_csi_volume.mysql mysql@my-namespace\nnomad_csi_volume.mysql: Importing from ID \"mysql@my-namespace\"...\nnomad_csi_volume.mysql: Import prepared!\n  Prepared nomad_csi_volume for import\nnomad_csi_volume.mysql: Refreshing state... [id=mysql@my-namespace]\n\nImport successful!\n\nThe resources that were imported are shown above. These resources are now in\nyour Terraform state and will henceforth be managed by Terraform.\n```\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsTimeouts]\" pulumi-lang-dotnet=\"[TfDocsTimeouts]\" pulumi-lang-go=\"[tfDocsTimeouts]\" pulumi-lang-python=\"[tf_docs_timeouts]\" pulumi-lang-yaml=\"[tfDocsTimeouts]\" pulumi-lang-java=\"[tfDocsTimeouts]\"\u003e[tfDocsTimeouts]\u003c/span\u003e: https://www.terraform.io/docs/configuration/blocks/resources/syntax.html#operation-timeouts\n\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#prevent_destroy\n",
            "properties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeCapability:CsiVolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "capacity": {
                    "type": "integer"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMaxBytes": {
                    "type": "integer"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMinBytes": {
                    "type": "integer"
                },
                "cloneId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n"
                },
                "context": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "The volume context provided by the storage provider"
                },
                "controllerRequired": {
                    "type": "boolean"
                },
                "controllersExpected": {
                    "type": "integer"
                },
                "controllersHealthy": {
                    "type": "integer"
                },
                "externalId": {
                    "type": "string",
                    "description": "The ID of the physical volume from the storage provider."
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/CsiVolumeMountOptions:CsiVolumeMountOptions",
                    "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n"
                },
                "nodesExpected": {
                    "type": "integer"
                },
                "nodesHealthy": {
                    "type": "integer"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n"
                },
                "pluginProvider": {
                    "type": "string"
                },
                "pluginProviderVersion": {
                    "type": "string"
                },
                "schedulable": {
                    "type": "boolean"
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "snapshotId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n"
                },
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeTopology:CsiVolumeTopology"
                    }
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/CsiVolumeTopologyRequest:CsiVolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n"
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n"
                }
            },
            "required": [
                "capabilities",
                "capacity",
                "capacityMaxBytes",
                "capacityMinBytes",
                "context",
                "controllerRequired",
                "controllersExpected",
                "controllersHealthy",
                "externalId",
                "name",
                "nodesExpected",
                "nodesHealthy",
                "pluginId",
                "pluginProvider",
                "pluginProviderVersion",
                "schedulable",
                "topologies",
                "volumeId"
            ],
            "inputProperties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeCapability:CsiVolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n",
                    "willReplaceOnChanges": true
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                },
                "cloneId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/CsiVolumeMountOptions:CsiVolumeMountOptions",
                    "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                    "willReplaceOnChanges": true
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                    "willReplaceOnChanges": true
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "snapshotId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/CsiVolumeTopologyRequest:CsiVolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                    "willReplaceOnChanges": true
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "capabilities",
                "pluginId",
                "volumeId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering CsiVolume resources.\n",
                "properties": {
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/CsiVolumeCapability:CsiVolumeCapability"
                        },
                        "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "capacity": {
                        "type": "integer"
                    },
                    "capacityMax": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                    },
                    "capacityMaxBytes": {
                        "type": "integer"
                    },
                    "capacityMin": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                    },
                    "capacityMinBytes": {
                        "type": "integer"
                    },
                    "cloneId": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "context": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "The volume context provided by the storage provider"
                    },
                    "controllerRequired": {
                        "type": "boolean"
                    },
                    "controllersExpected": {
                        "type": "integer"
                    },
                    "controllersHealthy": {
                        "type": "integer"
                    },
                    "externalId": {
                        "type": "string",
                        "description": "The ID of the physical volume from the storage provider."
                    },
                    "mountOptions": {
                        "$ref": "#/types/nomad:index/CsiVolumeMountOptions:CsiVolumeMountOptions",
                        "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodesExpected": {
                        "type": "integer"
                    },
                    "nodesHealthy": {
                        "type": "integer"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "pluginProvider": {
                        "type": "string"
                    },
                    "pluginProviderVersion": {
                        "type": "string"
                    },
                    "schedulable": {
                        "type": "boolean"
                    },
                    "secrets": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                        "secret": true
                    },
                    "snapshotId": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "topologies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/CsiVolumeTopology:CsiVolumeTopology"
                        }
                    },
                    "topologyRequest": {
                        "$ref": "#/types/nomad:index/CsiVolumeTopologyRequest:CsiVolumeTopologyRequest",
                        "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                        "willReplaceOnChanges": true
                    },
                    "volumeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/csiVolumeRegistration:CsiVolumeRegistration": {
            "description": "Manages the registration of a CSI volume in Nomad\n\nThis can be used to register and deregister CSI volumes in a Nomad cluster. The\nvolume must already exist to be registered. Use the \u003cspan pulumi-lang-nodejs=\"`nomad.CsiVolume`\" pulumi-lang-dotnet=\"`nomad.CsiVolume`\" pulumi-lang-go=\"`CsiVolume`\" pulumi-lang-python=\"`CsiVolume`\" pulumi-lang-yaml=\"`nomad.CsiVolume`\" pulumi-lang-java=\"`nomad.CsiVolume`\"\u003e`nomad.CsiVolume`\u003c/span\u003e\nresource to create a new volume.\n\n\u003e **Warning:** this resource will store any sensitive values placed in\n  \u003cspan pulumi-lang-nodejs=\"`secrets`\" pulumi-lang-dotnet=\"`Secrets`\" pulumi-lang-go=\"`secrets`\" pulumi-lang-python=\"`secrets`\" pulumi-lang-yaml=\"`secrets`\" pulumi-lang-java=\"`secrets`\"\u003e`secrets`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mountOptions`\" pulumi-lang-dotnet=\"`MountOptions`\" pulumi-lang-go=\"`mountOptions`\" pulumi-lang-python=\"`mount_options`\" pulumi-lang-yaml=\"`mountOptions`\" pulumi-lang-java=\"`mountOptions`\"\u003e`mountOptions`\u003c/span\u003e in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n## Example Usage\n\nRegistering a volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\n// It can sometimes be helpful to wait for a particular plugin to be available\nconst ebs = nomad.getPlugin({\n    pluginId: \"aws-ebs0\",\n    waitForHealthy: true,\n});\nconst mysqlVolume = new nomad.CsiVolumeRegistration(\"mysql_volume\", {\n    pluginId: \"aws-ebs0\",\n    volumeId: \"mysql_volume\",\n    name: \"mysql_volume\",\n    externalId: hashistack.ebsTestVolumeId,\n    capabilities: [{\n        accessMode: \"single-node-writer\",\n        attachmentMode: \"file-system\",\n    }],\n    mountOptions: {\n        fsType: \"ext4\",\n    },\n    topologyRequest: {\n        required: {\n            topologies: [\n                {\n                    segments: {\n                        rack: \"R1\",\n                        zone: \"us-east-1a\",\n                    },\n                },\n                {\n                    segments: {\n                        rack: \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n}, {\n    dependsOn: [ebs],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\n# It can sometimes be helpful to wait for a particular plugin to be available\nebs = nomad.get_plugin(plugin_id=\"aws-ebs0\",\n    wait_for_healthy=True)\nmysql_volume = nomad.CsiVolumeRegistration(\"mysql_volume\",\n    plugin_id=\"aws-ebs0\",\n    volume_id=\"mysql_volume\",\n    name=\"mysql_volume\",\n    external_id=hashistack[\"ebsTestVolumeId\"],\n    capabilities=[{\n        \"access_mode\": \"single-node-writer\",\n        \"attachment_mode\": \"file-system\",\n    }],\n    mount_options={\n        \"fs_type\": \"ext4\",\n    },\n    topology_request={\n        \"required\": {\n            \"topologies\": [\n                {\n                    \"segments\": {\n                        \"rack\": \"R1\",\n                        \"zone\": \"us-east-1a\",\n                    },\n                },\n                {\n                    \"segments\": {\n                        \"rack\": \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ebs]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // It can sometimes be helpful to wait for a particular plugin to be available\n    var ebs = Nomad.Index.GetPlugin.Invoke(new()\n    {\n        PluginId = \"aws-ebs0\",\n        WaitForHealthy = true,\n    });\n\n    var mysqlVolume = new Nomad.Index.CsiVolumeRegistration(\"mysql_volume\", new()\n    {\n        PluginId = \"aws-ebs0\",\n        VolumeId = \"mysql_volume\",\n        Name = \"mysql_volume\",\n        ExternalId = hashistack.EbsTestVolumeId,\n        Capabilities = new[]\n        {\n            new Nomad.Inputs.CsiVolumeRegistrationCapabilityArgs\n            {\n                AccessMode = \"single-node-writer\",\n                AttachmentMode = \"file-system\",\n            },\n        },\n        MountOptions = new Nomad.Inputs.CsiVolumeRegistrationMountOptionsArgs\n        {\n            FsType = \"ext4\",\n        },\n        TopologyRequest = new Nomad.Inputs.CsiVolumeRegistrationTopologyRequestArgs\n        {\n            Required = new Nomad.Inputs.CsiVolumeRegistrationTopologyRequestRequiredArgs\n            {\n                Topologies = new[]\n                {\n                    new Nomad.Inputs.CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R1\" },\n                            { \"zone\", \"us-east-1a\" },\n                        },\n                    },\n                    new Nomad.Inputs.CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R2\" },\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            ebs,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// It can sometimes be helpful to wait for a particular plugin to be available\n\t\tebs, err := nomad.GetPlugin(ctx, \u0026nomad.GetPluginArgs{\n\t\t\tPluginId:       \"aws-ebs0\",\n\t\t\tWaitForHealthy: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewCsiVolumeRegistration(ctx, \"mysql_volume\", \u0026nomad.CsiVolumeRegistrationArgs{\n\t\t\tPluginId:   pulumi.String(\"aws-ebs0\"),\n\t\t\tVolumeId:   pulumi.String(\"mysql_volume\"),\n\t\t\tName:       pulumi.String(\"mysql_volume\"),\n\t\t\tExternalId: pulumi.Any(hashistack.EbsTestVolumeId),\n\t\t\tCapabilities: nomad.CsiVolumeRegistrationCapabilityArray{\n\t\t\t\t\u0026nomad.CsiVolumeRegistrationCapabilityArgs{\n\t\t\t\t\tAccessMode:     pulumi.String(\"single-node-writer\"),\n\t\t\t\t\tAttachmentMode: pulumi.String(\"file-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMountOptions: \u0026nomad.CsiVolumeRegistrationMountOptionsArgs{\n\t\t\t\tFsType: pulumi.String(\"ext4\"),\n\t\t\t},\n\t\t\tTopologyRequest: \u0026nomad.CsiVolumeRegistrationTopologyRequestArgs{\n\t\t\t\tRequired: \u0026nomad.CsiVolumeRegistrationTopologyRequestRequiredArgs{\n\t\t\t\t\tTopologies: nomad.CsiVolumeRegistrationTopologyRequestRequiredTopologyArray{\n\t\t\t\t\t\t\u0026nomad.CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R1\"),\n\t\t\t\t\t\t\t\t\"zone\": pulumi.String(\"us-east-1a\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026nomad.CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tebs,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginArgs;\nimport com.pulumi.nomad.CsiVolumeRegistration;\nimport com.pulumi.nomad.CsiVolumeRegistrationArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeRegistrationCapabilityArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeRegistrationMountOptionsArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeRegistrationTopologyRequestArgs;\nimport com.pulumi.nomad.inputs.CsiVolumeRegistrationTopologyRequestRequiredArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // It can sometimes be helpful to wait for a particular plugin to be available\n        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .waitForHealthy(true)\n            .build());\n\n        var mysqlVolume = new CsiVolumeRegistration(\"mysqlVolume\", CsiVolumeRegistrationArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .volumeId(\"mysql_volume\")\n            .name(\"mysql_volume\")\n            .externalId(hashistack.ebsTestVolumeId())\n            .capabilities(CsiVolumeRegistrationCapabilityArgs.builder()\n                .accessMode(\"single-node-writer\")\n                .attachmentMode(\"file-system\")\n                .build())\n            .mountOptions(CsiVolumeRegistrationMountOptionsArgs.builder()\n                .fsType(\"ext4\")\n                .build())\n            .topologyRequest(CsiVolumeRegistrationTopologyRequestArgs.builder()\n                .required(CsiVolumeRegistrationTopologyRequestRequiredArgs.builder()\n                    .topologies(                    \n                        CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.ofEntries(\n                                Map.entry(\"rack\", \"R1\"),\n                                Map.entry(\"zone\", \"us-east-1a\")\n                            ))\n                            .build(),\n                        CsiVolumeRegistrationTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.of(\"rack\", \"R2\"))\n                            .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(ebs)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mysqlVolume:\n    type: nomad:CsiVolumeRegistration\n    name: mysql_volume\n    properties:\n      pluginId: aws-ebs0\n      volumeId: mysql_volume\n      name: mysql_volume\n      externalId: ${hashistack.ebsTestVolumeId}\n      capabilities:\n        - accessMode: single-node-writer\n          attachmentMode: file-system\n      mountOptions:\n        fsType: ext4\n      topologyRequest:\n        required:\n          topologies:\n            - segments:\n                rack: R1\n                zone: us-east-1a\n            - segments:\n                rack: R2\n    options:\n      dependsOn:\n        - ${ebs}\nvariables:\n  # It can sometimes be helpful to wait for a particular plugin to be available\n  ebs:\n    fn::invoke:\n      function: nomad:getPlugin\n      arguments:\n        pluginId: aws-ebs0\n        waitForHealthy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Importing CSI Volume Registrations\n\nCSI volume registrations are imported using the pattern\n`\u003cvolume ID\u003e@\u003cnamespace\u003e`.\n\n```console\n$ terraform import nomad_csi_volume.mysql mysql@my-namespace\nnomad_csi_volume_registration.mysql: Importing from ID \"mysql@my-namespace\"...\nnomad_csi_volume_registration.mysql: Import prepared!\n  Prepared nomad_csi_volume_registration for import\nnomad_csi_volume_registration.mysql: Refreshing state... [id=mysql@my-namespace]\n\nImport successful!\n\nThe resources that were imported are shown above. These resources are now in\nyour Terraform state and will henceforth be managed by Terraform.\n```\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsTimeouts]\" pulumi-lang-dotnet=\"[TfDocsTimeouts]\" pulumi-lang-go=\"[tfDocsTimeouts]\" pulumi-lang-python=\"[tf_docs_timeouts]\" pulumi-lang-yaml=\"[tfDocsTimeouts]\" pulumi-lang-java=\"[tfDocsTimeouts]\"\u003e[tfDocsTimeouts]\u003c/span\u003e: https://www.terraform.io/docs/configuration/blocks/resources/syntax.html#operation-timeouts\n",
            "properties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationCapability:CsiVolumeRegistrationCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "capacity": {
                    "type": "integer"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMaxBytes": {
                    "type": "integer"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMinBytes": {
                    "type": "integer"
                },
                "context": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                },
                "controllerRequired": {
                    "type": "boolean"
                },
                "controllersExpected": {
                    "type": "integer"
                },
                "controllersHealthy": {
                    "type": "integer"
                },
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n"
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/CsiVolumeRegistrationMountOptions:CsiVolumeRegistrationMountOptions",
                    "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n"
                },
                "nodesExpected": {
                    "type": "integer"
                },
                "nodesHealthy": {
                    "type": "integer"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n"
                },
                "pluginProvider": {
                    "type": "string"
                },
                "pluginProviderVersion": {
                    "type": "string"
                },
                "schedulable": {
                    "type": "boolean"
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopology:CsiVolumeRegistrationTopology"
                    }
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopologyRequest:CsiVolumeRegistrationTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n"
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n"
                }
            },
            "required": [
                "capacity",
                "capacityMaxBytes",
                "capacityMinBytes",
                "controllerRequired",
                "controllersExpected",
                "controllersHealthy",
                "externalId",
                "name",
                "nodesExpected",
                "nodesHealthy",
                "pluginId",
                "pluginProvider",
                "pluginProviderVersion",
                "schedulable",
                "topologies",
                "volumeId"
            ],
            "inputProperties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationCapability:CsiVolumeRegistrationCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                },
                "context": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                },
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n",
                    "willReplaceOnChanges": true
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/CsiVolumeRegistrationMountOptions:CsiVolumeRegistrationMountOptions",
                    "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                    "willReplaceOnChanges": true
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                    "willReplaceOnChanges": true
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopologyRequest:CsiVolumeRegistrationTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                    "willReplaceOnChanges": true
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "externalId",
                "pluginId",
                "volumeId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering CsiVolumeRegistration resources.\n",
                "properties": {
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/CsiVolumeRegistrationCapability:CsiVolumeRegistrationCapability"
                        },
                        "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                    },
                    "capacity": {
                        "type": "integer"
                    },
                    "capacityMax": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                    },
                    "capacityMaxBytes": {
                        "type": "integer"
                    },
                    "capacityMin": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                    },
                    "capacityMinBytes": {
                        "type": "integer"
                    },
                    "context": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                    },
                    "controllerRequired": {
                        "type": "boolean"
                    },
                    "controllersExpected": {
                        "type": "integer"
                    },
                    "controllersHealthy": {
                        "type": "integer"
                    },
                    "deregisterOnDestroy": {
                        "type": "boolean",
                        "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                    },
                    "externalId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n",
                        "willReplaceOnChanges": true
                    },
                    "mountOptions": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationMountOptions:CsiVolumeRegistrationMountOptions",
                        "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodesExpected": {
                        "type": "integer"
                    },
                    "nodesHealthy": {
                        "type": "integer"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "pluginProvider": {
                        "type": "string"
                    },
                    "pluginProviderVersion": {
                        "type": "string"
                    },
                    "schedulable": {
                        "type": "boolean"
                    },
                    "secrets": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                        "secret": true
                    },
                    "topologies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopology:CsiVolumeRegistrationTopology"
                        }
                    },
                    "topologyRequest": {
                        "$ref": "#/types/nomad:index/CsiVolumeRegistrationTopologyRequest:CsiVolumeRegistrationTopologyRequest",
                        "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                        "willReplaceOnChanges": true
                    },
                    "volumeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/dynamicHostVolume:DynamicHostVolume": {
            "description": "layout: \"nomad\"\npage_title: \"Nomad:\u003cspan pulumi-lang-nodejs=\" nomad.DynamicHostVolume\"\" pulumi-lang-dotnet=\" nomad.DynamicHostVolume\"\" pulumi-lang-go=\" DynamicHostVolume\"\" pulumi-lang-python=\" DynamicHostVolume\"\" pulumi-lang-yaml=\" nomad.DynamicHostVolume\"\" pulumi-lang-java=\" nomad.DynamicHostVolume\"\"\u003e nomad.DynamicHostVolume\"\u003c/span\u003e\nsidebar_current: \"docs-nomad-resource-dynamic-host-volume\"\ndescription: |-\n  Manages the lifecycle of creating and deleting dynamic host volumes.\n---\n\nCreates and registers a dynamic host volume in Nomad. Note that Nomad supports\ntwo workflows for dynamic host volumes: create and register. Both resources\nresult in the same data source with the same outputs.\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n  [\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\n  deletions.\n\n\n## Example Usage\n\nCreating a dynamic host volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = new nomad.DynamicHostVolume(\"example\", {\n    name: \"example\",\n    namespace: \"prod\",\n    pluginId: \"mkdir\",\n    capacityMax: \"12 GiB\",\n    capacityMin: \"1.0 GiB\",\n    capabilities: [{\n        accessMode: \"single-node-writer\",\n        attachmentMode: \"file-system\",\n    }],\n    constraints: [{\n        attribute: `${attr.kernel.name}`,\n        value: \"linux\",\n    }],\n    parameters: {\n        some_key: \"some_value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.DynamicHostVolume(\"example\",\n    name=\"example\",\n    namespace=\"prod\",\n    plugin_id=\"mkdir\",\n    capacity_max=\"12 GiB\",\n    capacity_min=\"1.0 GiB\",\n    capabilities=[{\n        \"access_mode\": \"single-node-writer\",\n        \"attachment_mode\": \"file-system\",\n    }],\n    constraints=[{\n        \"attribute\": \"${attr.kernel.name}\",\n        \"value\": \"linux\",\n    }],\n    parameters={\n        \"some_key\": \"some_value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Nomad.Index.DynamicHostVolume(\"example\", new()\n    {\n        Name = \"example\",\n        Namespace = \"prod\",\n        PluginId = \"mkdir\",\n        CapacityMax = \"12 GiB\",\n        CapacityMin = \"1.0 GiB\",\n        Capabilities = new[]\n        {\n            new Nomad.Inputs.DynamicHostVolumeCapabilityArgs\n            {\n                AccessMode = \"single-node-writer\",\n                AttachmentMode = \"file-system\",\n            },\n        },\n        Constraints = new[]\n        {\n            new Nomad.Inputs.DynamicHostVolumeConstraintArgs\n            {\n                Attribute = \"${attr.kernel.name}\",\n                Value = \"linux\",\n            },\n        },\n        Parameters = \n        {\n            { \"some_key\", \"some_value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewDynamicHostVolume(ctx, \"example\", \u0026nomad.DynamicHostVolumeArgs{\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tNamespace:   pulumi.String(\"prod\"),\n\t\t\tPluginId:    pulumi.String(\"mkdir\"),\n\t\t\tCapacityMax: pulumi.String(\"12 GiB\"),\n\t\t\tCapacityMin: pulumi.String(\"1.0 GiB\"),\n\t\t\tCapabilities: nomad.DynamicHostVolumeCapabilityArray{\n\t\t\t\t\u0026nomad.DynamicHostVolumeCapabilityArgs{\n\t\t\t\t\tAccessMode:     pulumi.String(\"single-node-writer\"),\n\t\t\t\t\tAttachmentMode: pulumi.String(\"file-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConstraints: nomad.DynamicHostVolumeConstraintArray{\n\t\t\t\t\u0026nomad.DynamicHostVolumeConstraintArgs{\n\t\t\t\t\tAttribute: pulumi.Sprintf(\"${attr.kernel.name}\"),\n\t\t\t\t\tValue:     pulumi.String(\"linux\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"some_key\": pulumi.String(\"some_value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.DynamicHostVolume;\nimport com.pulumi.nomad.DynamicHostVolumeArgs;\nimport com.pulumi.nomad.inputs.DynamicHostVolumeCapabilityArgs;\nimport com.pulumi.nomad.inputs.DynamicHostVolumeConstraintArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new DynamicHostVolume(\"example\", DynamicHostVolumeArgs.builder()\n            .name(\"example\")\n            .namespace(\"prod\")\n            .pluginId(\"mkdir\")\n            .capacityMax(\"12 GiB\")\n            .capacityMin(\"1.0 GiB\")\n            .capabilities(DynamicHostVolumeCapabilityArgs.builder()\n                .accessMode(\"single-node-writer\")\n                .attachmentMode(\"file-system\")\n                .build())\n            .constraints(DynamicHostVolumeConstraintArgs.builder()\n                .attribute(\"${attr.kernel.name}\")\n                .value(\"linux\")\n                .build())\n            .parameters(Map.of(\"some_key\", \"some_value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: nomad:DynamicHostVolume\n    properties:\n      name: example\n      namespace: prod\n      pluginId: mkdir\n      capacityMax: 12 GiB\n      capacityMin: 1.0 GiB\n      capabilities:\n        - accessMode: single-node-writer\n          attachmentMode: file-system\n      constraints:\n        - attribute: $${attr.kernel.name}\n          value: linux\n      parameters:\n        some_key: some_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Importing Dynamic Host Volumes\n\nDynamic host volumes are imported using the pattern `\u003cvolume ID\u003e@\u003cnamespace\u003e` .\n\n```console\n$ terraform import nomad_dynamic_host_volume.mysql mysql@my-namespace\nnomad_dynamic_host_volume.mysql: Importing from ID \"mysql@my-namespace\"...\nnomad_dynamic_host_volume.mysql: Import prepared!\n  Prepared nomad_dynamic_host_volume for import\nnomad_dynamic_host_volume.mysql: Refreshing state... [id=mysql@my-namespace]\n\nImport successful!\n\nThe resources that were imported are shown above. These resources are now in\nyour Terraform state and will henceforth be managed by Terraform.\n```\n\n\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#prevent_destroy\n",
            "properties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeCapability:DynamicHostVolumeCapability"
                    },
                    "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                },
                "capacity": {
                    "type": "string",
                    "description": "Provisioned capacity"
                },
                "capacityBytes": {
                    "type": "integer"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option for requesting a maximum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                },
                "capacityMaxBytes": {
                    "type": "integer"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option for requesting a minimum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                },
                "capacityMinBytes": {
                    "type": "integer"
                },
                "constraints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeConstraint:DynamicHostVolumeConstraint"
                    },
                    "description": "`(block: \u003coptional\u003e)` - A restriction on the eligible nodes where\na volume can be created, similar to the [\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e][] block on a Nomad job\nspecification.. You can provide multiple \u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e blocks to add more\nconstraints. Each constraint block has the following attributes.\n"
                },
                "hostPath": {
                    "type": "string",
                    "description": "Host path"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                },
                "nodeId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - A specific node where you would like the\nvolume to be created.\n"
                },
                "nodePool": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - A specific node pool where you would like\nthe volume to be created. If you also provide \u003cspan pulumi-lang-nodejs=\"`nodeId`\" pulumi-lang-dotnet=\"`NodeId`\" pulumi-lang-go=\"`nodeId`\" pulumi-lang-python=\"`node_id`\" pulumi-lang-yaml=\"`nodeId`\" pulumi-lang-java=\"`nodeId`\"\u003e`nodeId`\u003c/span\u003e, the node must be in the\nprovided \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e.\n"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the [dynamic host volume\nplugin]\u003cspan pulumi-lang-nodejs=\"[dhvPlugin]\" pulumi-lang-dotnet=\"[DhvPlugin]\" pulumi-lang-go=\"[dhvPlugin]\" pulumi-lang-python=\"[dhv_plugin]\" pulumi-lang-yaml=\"[dhvPlugin]\" pulumi-lang-java=\"[dhvPlugin]\"\u003e[dhvPlugin]\u003c/span\u003e that manages this volume.\n\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#prevent_destroy\n[\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e]: /nomad/docs/job-specification/constraint\n[node attribute]: /nomad/docs/runtime/interpolation#interpreted_node_vars\n[\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#access_mode\n[\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#attachment_mode\n\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e: /nomad/docs/job-specification/volume#source\n#\u003cspan pulumi-lang-nodejs=\" nomad.DynamicHostVolume\n\" pulumi-lang-dotnet=\" nomad.DynamicHostVolume\n\" pulumi-lang-go=\" DynamicHostVolume\n\" pulumi-lang-python=\" DynamicHostVolume\n\" pulumi-lang-yaml=\" nomad.DynamicHostVolume\n\" pulumi-lang-java=\" nomad.DynamicHostVolume\n\"\u003e nomad.DynamicHostVolume\n\u003c/span\u003e\nCreates and registers a dynamic host volume in Nomad.\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n[\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\ndeletions.\n"
                },
                "state": {
                    "type": "string",
                    "description": "State"
                }
            },
            "required": [
                "capabilities",
                "capacity",
                "capacityBytes",
                "capacityMaxBytes",
                "capacityMinBytes",
                "hostPath",
                "name",
                "nodeId",
                "nodePool",
                "pluginId",
                "state"
            ],
            "inputProperties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeCapability:DynamicHostVolumeCapability"
                    },
                    "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option for requesting a maximum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option for requesting a minimum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                },
                "constraints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeConstraint:DynamicHostVolumeConstraint"
                    },
                    "description": "`(block: \u003coptional\u003e)` - A restriction on the eligible nodes where\na volume can be created, similar to the [\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e][] block on a Nomad job\nspecification.. You can provide multiple \u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e blocks to add more\nconstraints. Each constraint block has the following attributes.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                },
                "nodeId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - A specific node where you would like the\nvolume to be created.\n",
                    "willReplaceOnChanges": true
                },
                "nodePool": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - A specific node pool where you would like\nthe volume to be created. If you also provide \u003cspan pulumi-lang-nodejs=\"`nodeId`\" pulumi-lang-dotnet=\"`NodeId`\" pulumi-lang-go=\"`nodeId`\" pulumi-lang-python=\"`node_id`\" pulumi-lang-yaml=\"`nodeId`\" pulumi-lang-java=\"`nodeId`\"\u003e`nodeId`\u003c/span\u003e, the node must be in the\nprovided \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e.\n"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the [dynamic host volume\nplugin]\u003cspan pulumi-lang-nodejs=\"[dhvPlugin]\" pulumi-lang-dotnet=\"[DhvPlugin]\" pulumi-lang-go=\"[dhvPlugin]\" pulumi-lang-python=\"[dhv_plugin]\" pulumi-lang-yaml=\"[dhvPlugin]\" pulumi-lang-java=\"[dhvPlugin]\"\u003e[dhvPlugin]\u003c/span\u003e that manages this volume.\n\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#prevent_destroy\n[\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e]: /nomad/docs/job-specification/constraint\n[node attribute]: /nomad/docs/runtime/interpolation#interpreted_node_vars\n[\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#access_mode\n[\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#attachment_mode\n\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e: /nomad/docs/job-specification/volume#source\n#\u003cspan pulumi-lang-nodejs=\" nomad.DynamicHostVolume\n\" pulumi-lang-dotnet=\" nomad.DynamicHostVolume\n\" pulumi-lang-go=\" DynamicHostVolume\n\" pulumi-lang-python=\" DynamicHostVolume\n\" pulumi-lang-yaml=\" nomad.DynamicHostVolume\n\" pulumi-lang-java=\" nomad.DynamicHostVolume\n\"\u003e nomad.DynamicHostVolume\n\u003c/span\u003e\nCreates and registers a dynamic host volume in Nomad.\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n[\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\ndeletions.\n"
                }
            },
            "requiredInputs": [
                "capabilities",
                "pluginId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering DynamicHostVolume resources.\n",
                "properties": {
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/DynamicHostVolumeCapability:DynamicHostVolumeCapability"
                        },
                        "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                    },
                    "capacity": {
                        "type": "string",
                        "description": "Provisioned capacity"
                    },
                    "capacityBytes": {
                        "type": "integer"
                    },
                    "capacityMax": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option for requesting a maximum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                    },
                    "capacityMaxBytes": {
                        "type": "integer"
                    },
                    "capacityMin": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option for requesting a minimum\ncapacity, in bytes. The capacity of a volume may be the physical size of a\ndisk, or a quota, depending on the plugin. The specific size of the resulting\nvolume is somewhere between \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e; the exact\nbehavior is up to the plugin. If you want to specify an exact size, set\n\u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e to the same value. Accepts human-friendly\nsuffixes such as `\"100GiB\"`. Plugins that cannot restrict the size of volumes\nmay ignore this field.\n"
                    },
                    "capacityMinBytes": {
                        "type": "integer"
                    },
                    "constraints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/DynamicHostVolumeConstraint:DynamicHostVolumeConstraint"
                        },
                        "description": "`(block: \u003coptional\u003e)` - A restriction on the eligible nodes where\na volume can be created, similar to the [\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e][] block on a Nomad job\nspecification.. You can provide multiple \u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e blocks to add more\nconstraints. Each constraint block has the following attributes.\n"
                    },
                    "hostPath": {
                        "type": "string",
                        "description": "Host path"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                    },
                    "nodeId": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - A specific node where you would like the\nvolume to be created.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodePool": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - A specific node pool where you would like\nthe volume to be created. If you also provide \u003cspan pulumi-lang-nodejs=\"`nodeId`\" pulumi-lang-dotnet=\"`NodeId`\" pulumi-lang-go=\"`nodeId`\" pulumi-lang-python=\"`node_id`\" pulumi-lang-yaml=\"`nodeId`\" pulumi-lang-java=\"`nodeId`\"\u003e`nodeId`\u003c/span\u003e, the node must be in the\nprovided \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`nodePool`\u003c/span\u003e.\n"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the [dynamic host volume\nplugin]\u003cspan pulumi-lang-nodejs=\"[dhvPlugin]\" pulumi-lang-dotnet=\"[DhvPlugin]\" pulumi-lang-go=\"[dhvPlugin]\" pulumi-lang-python=\"[dhv_plugin]\" pulumi-lang-yaml=\"[dhvPlugin]\" pulumi-lang-java=\"[dhvPlugin]\"\u003e[dhvPlugin]\u003c/span\u003e that manages this volume.\n\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#prevent_destroy\n[\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e]: /nomad/docs/job-specification/constraint\n[node attribute]: /nomad/docs/runtime/interpolation#interpreted_node_vars\n[\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#access_mode\n[\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#attachment_mode\n\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e: /nomad/docs/job-specification/volume#source\n#\u003cspan pulumi-lang-nodejs=\" nomad.DynamicHostVolume\n\" pulumi-lang-dotnet=\" nomad.DynamicHostVolume\n\" pulumi-lang-go=\" DynamicHostVolume\n\" pulumi-lang-python=\" DynamicHostVolume\n\" pulumi-lang-yaml=\" nomad.DynamicHostVolume\n\" pulumi-lang-java=\" nomad.DynamicHostVolume\n\"\u003e nomad.DynamicHostVolume\n\u003c/span\u003e\nCreates and registers a dynamic host volume in Nomad.\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n[\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\ndeletions.\n"
                    },
                    "state": {
                        "type": "string",
                        "description": "State"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/dynamicHostVolumeRegistration:DynamicHostVolumeRegistration": {
            "description": "Registers a dynamic host volume in Nomad that has already been created. Note\nthat Nomad supports two workflows for dynamic host volumes: create and\nregister. Both resources result in the same data source with the same outputs.\n\n## Importing Dynamic Host Volumes\n\nDynamic host volumes are imported using the pattern `\u003cvolume ID\u003e@\u003cnamespace\u003e` .\n\n```console\n$ terraform import nomad_dynamic_host_volume_registration.mysql mysql@my-namespace\nnomad_dynamic_host_volume_registration.mysql: Importing from ID \"mysql@my-namespace\"...\nnomad_dynamic_host_volume_registration.mysql: Import prepared!\n  Prepared nomad_dynamic_host_volume_registration for import\nnomad_dynamic_host_volume_registration.mysql: Refreshing state... [id=mysql@my-namespace]\n\nImport successful!\n\nThe resources that were imported are shown above. These resources are now in\nyour Terraform state and will henceforth be managed by Terraform.\n```\n\n\n[\u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`accessMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#access_mode\n[\u003cspan pulumi-lang-nodejs=\"`attachmentMode`\" pulumi-lang-dotnet=\"`AttachmentMode`\" pulumi-lang-go=\"`attachmentMode`\" pulumi-lang-python=\"`attachment_mode`\" pulumi-lang-yaml=\"`attachmentMode`\" pulumi-lang-java=\"`attachmentMode`\"\u003e`attachmentMode`\u003c/span\u003e]: /nomad/docs/other-specifications/volume/capability#attachment_mode\n\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e: /nomad/docs/job-specification/volume#source\n",
            "properties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeRegistrationCapability:DynamicHostVolumeRegistrationCapability"
                    },
                    "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                },
                "capacity": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The size of a volume in bytes. Either the\nphysical size of a disk or a quota, depending on the plugin. This field must\nbe between the \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e values unless they are\nomitted. Accepts human-friendly suffixes such as `\"100GiB\"`.\n"
                },
                "capacityBytes": {
                    "type": "integer"
                },
                "capacityMaxBytes": {
                    "type": "integer"
                },
                "capacityMinBytes": {
                    "type": "integer"
                },
                "constraints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeRegistrationConstraint:DynamicHostVolumeRegistrationConstraint"
                    },
                    "description": "Constraints"
                },
                "hostPath": {
                    "type": "string",
                    "description": "`(string)` - The path on disk where the volume exists.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                },
                "nodeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A specific node where the volume is\nmounted.\n"
                },
                "nodePool": {
                    "type": "string",
                    "description": "Node pool"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "Plugin ID"
                },
                "state": {
                    "type": "string",
                    "description": "State"
                }
            },
            "required": [
                "capabilities",
                "capacityBytes",
                "capacityMaxBytes",
                "capacityMinBytes",
                "constraints",
                "hostPath",
                "name",
                "nodeId",
                "nodePool",
                "pluginId",
                "state"
            ],
            "inputProperties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/DynamicHostVolumeRegistrationCapability:DynamicHostVolumeRegistrationCapability"
                    },
                    "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                },
                "capacity": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The size of a volume in bytes. Either the\nphysical size of a disk or a quota, depending on the plugin. This field must\nbe between the \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e values unless they are\nomitted. Accepts human-friendly suffixes such as `\"100GiB\"`.\n"
                },
                "hostPath": {
                    "type": "string",
                    "description": "`(string)` - The path on disk where the volume exists.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                },
                "nodeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A specific node where the volume is\nmounted.\n"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                }
            },
            "requiredInputs": [
                "capabilities",
                "hostPath",
                "nodeId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering DynamicHostVolumeRegistration resources.\n",
                "properties": {
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/DynamicHostVolumeRegistrationCapability:DynamicHostVolumeRegistrationCapability"
                        },
                        "description": "`(block: \u003coptional\u003e)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n"
                    },
                    "capacity": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The size of a volume in bytes. Either the\nphysical size of a disk or a quota, depending on the plugin. This field must\nbe between the \u003cspan pulumi-lang-nodejs=\"`capacityMin`\" pulumi-lang-dotnet=\"`CapacityMin`\" pulumi-lang-go=\"`capacityMin`\" pulumi-lang-python=\"`capacity_min`\" pulumi-lang-yaml=\"`capacityMin`\" pulumi-lang-java=\"`capacityMin`\"\u003e`capacityMin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`capacityMax`\" pulumi-lang-dotnet=\"`CapacityMax`\" pulumi-lang-go=\"`capacityMax`\" pulumi-lang-python=\"`capacity_max`\" pulumi-lang-yaml=\"`capacityMax`\" pulumi-lang-java=\"`capacityMax`\"\u003e`capacityMax`\u003c/span\u003e values unless they are\nomitted. Accepts human-friendly suffixes such as `\"100GiB\"`.\n"
                    },
                    "capacityBytes": {
                        "type": "integer"
                    },
                    "capacityMaxBytes": {
                        "type": "integer"
                    },
                    "capacityMinBytes": {
                        "type": "integer"
                    },
                    "constraints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/DynamicHostVolumeRegistrationConstraint:DynamicHostVolumeRegistrationConstraint"
                        },
                        "description": "Constraints"
                    },
                    "hostPath": {
                        "type": "string",
                        "description": "`(string)` - The path on disk where the volume exists.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names must be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The namespace of the volume. This field\noverrides the namespace provided by the `-namespace` flag or `NOMAD_NAMESPACE`\nenvironment variable. Defaults to `\"default\"` if unset.\n"
                    },
                    "nodeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A specific node where the volume is\nmounted.\n"
                    },
                    "nodePool": {
                        "type": "string",
                        "description": "Node pool"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map\u003cstring|string\u003e: \u003coptional\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "Plugin ID"
                    },
                    "state": {
                        "type": "string",
                        "description": "State"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/externalVolume:ExternalVolume": {
            "description": "\u003e **Deprecated:** This resource has been deprecated and may be removed in a\nfuture release. Use \u003cspan pulumi-lang-nodejs=\"`nomad.CsiVolume`\" pulumi-lang-dotnet=\"`nomad.CsiVolume`\" pulumi-lang-go=\"`CsiVolume`\" pulumi-lang-python=\"`CsiVolume`\" pulumi-lang-yaml=\"`nomad.CsiVolume`\" pulumi-lang-java=\"`nomad.CsiVolume`\"\u003e`nomad.CsiVolume`\u003c/span\u003e instead.\n\nCreates and registers an external volume in Nomad.\n\nThis can be used to create and register external volumes in a Nomad cluster.\n\n\u003e **Warning:** This resource will store any sensitive values placed in\n  \u003cspan pulumi-lang-nodejs=\"`secrets`\" pulumi-lang-dotnet=\"`Secrets`\" pulumi-lang-go=\"`secrets`\" pulumi-lang-python=\"`secrets`\" pulumi-lang-yaml=\"`secrets`\" pulumi-lang-java=\"`secrets`\"\u003e`secrets`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mountOptions`\" pulumi-lang-dotnet=\"`MountOptions`\" pulumi-lang-go=\"`mountOptions`\" pulumi-lang-python=\"`mount_options`\" pulumi-lang-yaml=\"`mountOptions`\" pulumi-lang-java=\"`mountOptions`\"\u003e`mountOptions`\u003c/span\u003e in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n\u003e **Warning:** Destroying this resource **will result in data loss**. Use the\n  [\u003cspan pulumi-lang-nodejs=\"`preventDestroy`\" pulumi-lang-dotnet=\"`PreventDestroy`\" pulumi-lang-go=\"`preventDestroy`\" pulumi-lang-python=\"`prevent_destroy`\" pulumi-lang-yaml=\"`preventDestroy`\" pulumi-lang-java=\"`preventDestroy`\"\u003e`preventDestroy`\u003c/span\u003e]\u003cspan pulumi-lang-nodejs=\"[tfDocsPreventDestroy]\" pulumi-lang-dotnet=\"[TfDocsPreventDestroy]\" pulumi-lang-go=\"[tfDocsPreventDestroy]\" pulumi-lang-python=\"[tf_docs_prevent_destroy]\" pulumi-lang-yaml=\"[tfDocsPreventDestroy]\" pulumi-lang-java=\"[tfDocsPreventDestroy]\"\u003e[tfDocsPreventDestroy]\u003c/span\u003e directive to avoid accidental\n  deletions.\n\n## Example Usage\n\nCreating a volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\n// It can sometimes be helpful to wait for a particular plugin to be available\nconst ebs = nomad.getPlugin({\n    pluginId: \"aws-ebs0\",\n    waitForHealthy: true,\n});\nconst mysqlVolume = new nomad.ExternalVolume(\"mysql_volume\", {\n    type: \"csi\",\n    pluginId: \"aws-ebs0\",\n    volumeId: \"mysql_volume\",\n    name: \"mysql_volume\",\n    capacityMin: \"10GiB\",\n    capacityMax: \"20GiB\",\n    capabilities: [{\n        accessMode: \"single-node-writer\",\n        attachmentMode: \"file-system\",\n    }],\n    mountOptions: {\n        fsType: \"ext4\",\n    },\n    topologyRequest: {\n        required: {\n            topologies: [\n                {\n                    segments: {\n                        rack: \"R1\",\n                        zone: \"us-east-1a\",\n                    },\n                },\n                {\n                    segments: {\n                        rack: \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n}, {\n    dependsOn: [ebs],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\n# It can sometimes be helpful to wait for a particular plugin to be available\nebs = nomad.get_plugin(plugin_id=\"aws-ebs0\",\n    wait_for_healthy=True)\nmysql_volume = nomad.ExternalVolume(\"mysql_volume\",\n    type=\"csi\",\n    plugin_id=\"aws-ebs0\",\n    volume_id=\"mysql_volume\",\n    name=\"mysql_volume\",\n    capacity_min=\"10GiB\",\n    capacity_max=\"20GiB\",\n    capabilities=[{\n        \"access_mode\": \"single-node-writer\",\n        \"attachment_mode\": \"file-system\",\n    }],\n    mount_options={\n        \"fs_type\": \"ext4\",\n    },\n    topology_request={\n        \"required\": {\n            \"topologies\": [\n                {\n                    \"segments\": {\n                        \"rack\": \"R1\",\n                        \"zone\": \"us-east-1a\",\n                    },\n                },\n                {\n                    \"segments\": {\n                        \"rack\": \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ebs]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // It can sometimes be helpful to wait for a particular plugin to be available\n    var ebs = Nomad.Index.GetPlugin.Invoke(new()\n    {\n        PluginId = \"aws-ebs0\",\n        WaitForHealthy = true,\n    });\n\n    var mysqlVolume = new Nomad.Index.ExternalVolume(\"mysql_volume\", new()\n    {\n        Type = \"csi\",\n        PluginId = \"aws-ebs0\",\n        VolumeId = \"mysql_volume\",\n        Name = \"mysql_volume\",\n        CapacityMin = \"10GiB\",\n        CapacityMax = \"20GiB\",\n        Capabilities = new[]\n        {\n            new Nomad.Inputs.ExternalVolumeCapabilityArgs\n            {\n                AccessMode = \"single-node-writer\",\n                AttachmentMode = \"file-system\",\n            },\n        },\n        MountOptions = new Nomad.Inputs.ExternalVolumeMountOptionsArgs\n        {\n            FsType = \"ext4\",\n        },\n        TopologyRequest = new Nomad.Inputs.ExternalVolumeTopologyRequestArgs\n        {\n            Required = new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredArgs\n            {\n                Topologies = new[]\n                {\n                    new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R1\" },\n                            { \"zone\", \"us-east-1a\" },\n                        },\n                    },\n                    new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R2\" },\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            ebs,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// It can sometimes be helpful to wait for a particular plugin to be available\n\t\tebs, err := nomad.GetPlugin(ctx, \u0026nomad.GetPluginArgs{\n\t\t\tPluginId:       \"aws-ebs0\",\n\t\t\tWaitForHealthy: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewExternalVolume(ctx, \"mysql_volume\", \u0026nomad.ExternalVolumeArgs{\n\t\t\tType:        pulumi.String(\"csi\"),\n\t\t\tPluginId:    pulumi.String(\"aws-ebs0\"),\n\t\t\tVolumeId:    pulumi.String(\"mysql_volume\"),\n\t\t\tName:        pulumi.String(\"mysql_volume\"),\n\t\t\tCapacityMin: pulumi.String(\"10GiB\"),\n\t\t\tCapacityMax: pulumi.String(\"20GiB\"),\n\t\t\tCapabilities: nomad.ExternalVolumeCapabilityArray{\n\t\t\t\t\u0026nomad.ExternalVolumeCapabilityArgs{\n\t\t\t\t\tAccessMode:     pulumi.String(\"single-node-writer\"),\n\t\t\t\t\tAttachmentMode: pulumi.String(\"file-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMountOptions: \u0026nomad.ExternalVolumeMountOptionsArgs{\n\t\t\t\tFsType: pulumi.String(\"ext4\"),\n\t\t\t},\n\t\t\tTopologyRequest: \u0026nomad.ExternalVolumeTopologyRequestArgs{\n\t\t\t\tRequired: \u0026nomad.ExternalVolumeTopologyRequestRequiredArgs{\n\t\t\t\t\tTopologies: nomad.ExternalVolumeTopologyRequestRequiredTopologyArray{\n\t\t\t\t\t\t\u0026nomad.ExternalVolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R1\"),\n\t\t\t\t\t\t\t\t\"zone\": pulumi.String(\"us-east-1a\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026nomad.ExternalVolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tebs,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginArgs;\nimport com.pulumi.nomad.ExternalVolume;\nimport com.pulumi.nomad.ExternalVolumeArgs;\nimport com.pulumi.nomad.inputs.ExternalVolumeCapabilityArgs;\nimport com.pulumi.nomad.inputs.ExternalVolumeMountOptionsArgs;\nimport com.pulumi.nomad.inputs.ExternalVolumeTopologyRequestArgs;\nimport com.pulumi.nomad.inputs.ExternalVolumeTopologyRequestRequiredArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // It can sometimes be helpful to wait for a particular plugin to be available\n        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .waitForHealthy(true)\n            .build());\n\n        var mysqlVolume = new ExternalVolume(\"mysqlVolume\", ExternalVolumeArgs.builder()\n            .type(\"csi\")\n            .pluginId(\"aws-ebs0\")\n            .volumeId(\"mysql_volume\")\n            .name(\"mysql_volume\")\n            .capacityMin(\"10GiB\")\n            .capacityMax(\"20GiB\")\n            .capabilities(ExternalVolumeCapabilityArgs.builder()\n                .accessMode(\"single-node-writer\")\n                .attachmentMode(\"file-system\")\n                .build())\n            .mountOptions(ExternalVolumeMountOptionsArgs.builder()\n                .fsType(\"ext4\")\n                .build())\n            .topologyRequest(ExternalVolumeTopologyRequestArgs.builder()\n                .required(ExternalVolumeTopologyRequestRequiredArgs.builder()\n                    .topologies(                    \n                        ExternalVolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.ofEntries(\n                                Map.entry(\"rack\", \"R1\"),\n                                Map.entry(\"zone\", \"us-east-1a\")\n                            ))\n                            .build(),\n                        ExternalVolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.of(\"rack\", \"R2\"))\n                            .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(ebs)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mysqlVolume:\n    type: nomad:ExternalVolume\n    name: mysql_volume\n    properties:\n      type: csi\n      pluginId: aws-ebs0\n      volumeId: mysql_volume\n      name: mysql_volume\n      capacityMin: 10GiB\n      capacityMax: 20GiB\n      capabilities:\n        - accessMode: single-node-writer\n          attachmentMode: file-system\n      mountOptions:\n        fsType: ext4\n      topologyRequest:\n        required:\n          topologies:\n            - segments:\n                rack: R1\n                zone: us-east-1a\n            - segments:\n                rack: R2\n    options:\n      dependsOn:\n        - ${ebs}\nvariables:\n  # It can sometimes be helpful to wait for a particular plugin to be available\n  ebs:\n    fn::invoke:\n      function: nomad:getPlugin\n      arguments:\n        pluginId: aws-ebs0\n        waitForHealthy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/ExternalVolumeCapability:ExternalVolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n"
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n"
                },
                "cloneId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n"
                },
                "controllerRequired": {
                    "type": "boolean"
                },
                "controllersExpected": {
                    "type": "integer"
                },
                "controllersHealthy": {
                    "type": "integer"
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/ExternalVolumeMountOptions:ExternalVolumeMountOptions",
                    "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n"
                },
                "nodesExpected": {
                    "type": "integer"
                },
                "nodesHealthy": {
                    "type": "integer"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n"
                },
                "pluginProvider": {
                    "type": "string"
                },
                "pluginProviderVersion": {
                    "type": "string"
                },
                "schedulable": {
                    "type": "boolean"
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "snapshotId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n"
                },
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/ExternalVolumeTopology:ExternalVolumeTopology"
                    }
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequest:ExternalVolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n"
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n"
                }
            },
            "required": [
                "capabilities",
                "controllerRequired",
                "controllersExpected",
                "controllersHealthy",
                "name",
                "nodesExpected",
                "nodesHealthy",
                "pluginId",
                "pluginProvider",
                "pluginProviderVersion",
                "schedulable",
                "topologies",
                "volumeId"
            ],
            "inputProperties": {
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/ExternalVolumeCapability:ExternalVolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n",
                    "willReplaceOnChanges": true
                },
                "capacityMax": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n",
                    "willReplaceOnChanges": true
                },
                "capacityMin": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n",
                    "willReplaceOnChanges": true
                },
                "cloneId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/ExternalVolumeMountOptions:ExternalVolumeMountOptions",
                    "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                    "willReplaceOnChanges": true
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                    "willReplaceOnChanges": true
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "snapshotId": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequest:ExternalVolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n",
                    "willReplaceOnChanges": true
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "capabilities",
                "pluginId",
                "volumeId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ExternalVolume resources.\n",
                "properties": {
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/ExternalVolumeCapability:ExternalVolumeCapability"
                        },
                        "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "capacityMax": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a maximum volume size. This may not be supported by all storage providers.\n",
                        "willReplaceOnChanges": true
                    },
                    "capacityMin": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Option to signal a minimum volume size. This may not be supported by all storage providers.\n",
                        "willReplaceOnChanges": true
                    },
                    "cloneId": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The external ID of an existing volume to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshotId`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "controllerRequired": {
                        "type": "boolean"
                    },
                    "controllersExpected": {
                        "type": "integer"
                    },
                    "controllersHealthy": {
                        "type": "integer"
                    },
                    "mountOptions": {
                        "$ref": "#/types/nomad:index/ExternalVolumeMountOptions:ExternalVolumeMountOptions",
                        "description": "`(block: optional)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodesExpected": {
                        "type": "integer"
                    },
                    "nodesHealthy": {
                        "type": "integer"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: optional)` An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "pluginProvider": {
                        "type": "string"
                    },
                    "pluginProviderVersion": {
                        "type": "string"
                    },
                    "schedulable": {
                        "type": "boolean"
                    },
                    "secrets": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: optional)` An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                        "secret": true
                    },
                    "snapshotId": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - The external ID of a snapshot to restore. If ommited, the volume will be created from scratch. Conflicts with \u003cspan pulumi-lang-nodejs=\"`cloneId`\" pulumi-lang-dotnet=\"`CloneId`\" pulumi-lang-go=\"`cloneId`\" pulumi-lang-python=\"`clone_id`\" pulumi-lang-yaml=\"`cloneId`\" pulumi-lang-java=\"`cloneId`\"\u003e`cloneId`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "topologies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/ExternalVolumeTopology:ExternalVolumeTopology"
                        }
                    },
                    "topologyRequest": {
                        "$ref": "#/types/nomad:index/ExternalVolumeTopologyRequest:ExternalVolumeTopologyRequest",
                        "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                        "willReplaceOnChanges": true
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n",
                        "willReplaceOnChanges": true
                    },
                    "volumeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/job:Job": {
            "description": "Manages a job registered in Nomad.\n\nThis can be used to initialize your cluster with system jobs, common services,\nand more. In day to day Nomad use it is common for developers to submit jobs to\nNomad directly, such as for general app deployment. In addition to these apps, a\nNomad cluster often runs core system services that are ideally setup during\ninfrastructure creation. This resource is ideal for the latter type of job, but\ncan be used to manage any job within Nomad.\n\n## Importing Jobs\n\nJobs are imported using the pattern `\u003cjob ID\u003e@\u003cnamespace\u003e`.\n\n```console\n$ terraform import nomad_job.example example@my-namespace\nnomad_job.example: Importing from ID \"example@my-namespace\"...\nnomad_job.example: Import prepared!\n  Prepared nomad_job for import\nnomad_job.example: Refreshing state... [id=example@my-namespace]\n\nImport successful!\n\nThe resources that were imported are shown above. These resources are now in\nyour Terraform state and will henceforth be managed by Terraform.\n```\n\n\u003cspan pulumi-lang-nodejs=\"[tfDocsTimeouts]\" pulumi-lang-dotnet=\"[TfDocsTimeouts]\" pulumi-lang-go=\"[tfDocsTimeouts]\" pulumi-lang-python=\"[tf_docs_timeouts]\" pulumi-lang-yaml=\"[tfDocsTimeouts]\" pulumi-lang-java=\"[tfDocsTimeouts]\"\u003e[tfDocsTimeouts]\u003c/span\u003e: https://www.terraform.io/docs/configuration/blocks/resources/syntax.html#operation-timeouts\n\u003cspan pulumi-lang-nodejs=\"[tfDocsTemplatefile]\" pulumi-lang-dotnet=\"[TfDocsTemplatefile]\" pulumi-lang-go=\"[tfDocsTemplatefile]\" pulumi-lang-python=\"[tf_docs_templatefile]\" pulumi-lang-yaml=\"[tfDocsTemplatefile]\" pulumi-lang-java=\"[tfDocsTemplatefile]\"\u003e[tfDocsTemplatefile]\u003c/span\u003e: https://www.terraform.io/docs/configuration/functions/templatefile.html\n\u003cspan pulumi-lang-nodejs=\"[tfDocsStringTemplate]\" pulumi-lang-dotnet=\"[TfDocsStringTemplate]\" pulumi-lang-go=\"[tfDocsStringTemplate]\" pulumi-lang-python=\"[tf_docs_string_template]\" pulumi-lang-yaml=\"[tfDocsStringTemplate]\" pulumi-lang-java=\"[tfDocsStringTemplate]\"\u003e[tfDocsStringTemplate]\u003c/span\u003e: https://www.terraform.io/language/expressions/strings#string-templates\n",
            "properties": {
                "allAtOnce": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the scheduler can make partial placements on oversubscribed nodes.\n"
                },
                "allocationIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`(list of strings)` - Allocation IDs associated with the job when \u003cspan pulumi-lang-nodejs=\"`readAllocationIds \" pulumi-lang-dotnet=\"`ReadAllocationIds \" pulumi-lang-go=\"`readAllocationIds \" pulumi-lang-python=\"`read_allocation_ids \" pulumi-lang-yaml=\"`readAllocationIds \" pulumi-lang-java=\"`readAllocationIds \"\u003e`readAllocationIds \u003c/span\u003e= true`.\n",
                    "deprecationMessage": "Retrieving allocation IDs from the job resource is deprecated and will be removed in a future release. Use the\u003cspan pulumi-lang-nodejs=\" nomad.getAllocations \" pulumi-lang-dotnet=\" nomad.getAllocations \" pulumi-lang-go=\" getAllocations \" pulumi-lang-python=\" get_allocations \" pulumi-lang-yaml=\" nomad.getAllocations \" pulumi-lang-java=\" nomad.getAllocations \"\u003e nomad.getAllocations \u003c/span\u003edata source instead."
                },
                "constraints": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobConstraint:JobConstraint"
                    },
                    "description": "`(list of maps)` - Job constraints.\n"
                },
                "createIndex": {
                    "type": "integer",
                    "description": "`(integer)` - The job creation index.\n"
                },
                "datacenters": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "`(set of strings)` - The target datacenters for the job.\n"
                },
                "deploymentId": {
                    "type": "string",
                    "description": "`(string)` - If `detach = false`, the deployment associated with the last create or update, if one exists.\n"
                },
                "deploymentStatus": {
                    "type": "string",
                    "description": "`(string)` - If `detach = false`, the status for the deployment associated with the last create or update, if one exists.\n"
                },
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - Determines if the job will be\nderegistered when this resource is destroyed in Terraform.\n"
                },
                "deregisterOnIdChange": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - Determines if the job will be\nderegistered if the ID of the job in the jobspec changes.\n"
                },
                "detach": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the provider will return immediately\nafter creating or updating, instead of monitoring.\n"
                },
                "hcl2": {
                    "$ref": "#/types/nomad:index/JobHcl2:JobHcl2",
                    "description": "`(block: optional)` - Options for the HCL2 jobspec parser.\n"
                },
                "jobspec": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the jobspec to register.\n"
                },
                "json": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if your jobspec is structured with\nJSON instead of the default HCL.\n"
                },
                "modifyIndex": {
                    "type": "string",
                    "description": "`(string)` - Integer that increments for each change. Used to detect any changes between plan and apply.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - Volume name.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string)` - The namespace of the job, as derived from the jobspec.\n"
                },
                "parentId": {
                    "type": "string",
                    "description": "`(string)` - The parent job ID, if applicable.\n"
                },
                "periodicConfigs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobPeriodicConfig:JobPeriodicConfig"
                    },
                    "description": "`(list of maps)` - The job's periodic configuration.\n"
                },
                "policyOverride": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Determines if the job will override any\nsoft-mandatory Sentinel policies and register even if they fail.\n"
                },
                "preserveCounts": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - If true, preserves the current task\ngroup counts already stored in Nomad during job registration instead of\napplying the counts from the submitted jobspec.\n"
                },
                "priority": {
                    "type": "integer",
                    "description": "`(integer)` - The job priority for scheduling and resource access.\n"
                },
                "purgeOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to true if you want the job to\nbe purged when the resource is destroyed.\n"
                },
                "readAllocationIds": {
                    "type": "boolean",
                    "deprecationMessage": "Retrieving allocation IDs from the job resource is deprecated and will be removed in a future release. Use the\u003cspan pulumi-lang-nodejs=\" nomad.getAllocations \" pulumi-lang-dotnet=\" nomad.getAllocations \" pulumi-lang-go=\" getAllocations \" pulumi-lang-python=\" get_allocations \" pulumi-lang-yaml=\" nomad.getAllocations \" pulumi-lang-java=\" nomad.getAllocations \"\u003e nomad.getAllocations \u003c/span\u003edata source instead."
                },
                "region": {
                    "type": "string",
                    "description": "`(string)` - The target region for the job.\n"
                },
                "rerunIfDead": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to true to force the job to run\nagain if its status is \u003cspan pulumi-lang-nodejs=\"`dead`\" pulumi-lang-dotnet=\"`Dead`\" pulumi-lang-go=\"`dead`\" pulumi-lang-python=\"`dead`\" pulumi-lang-yaml=\"`dead`\" pulumi-lang-java=\"`dead`\"\u003e`dead`\u003c/span\u003e.\n"
                },
                "stable": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the job is stable.\n"
                },
                "status": {
                    "type": "string",
                    "description": "`(string)` - The current status of the job.\n"
                },
                "statusDescription": {
                    "type": "string",
                    "description": "`(string)` - Additional status information returned by Nomad.\n"
                },
                "stop": {
                    "type": "boolean",
                    "description": "`(boolean)` - Whether the job is stopped.\n"
                },
                "submitTime": {
                    "type": "string",
                    "description": "`(integer)` - The Unix timestamp when the job was submitted.\n"
                },
                "taskGroups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobTaskGroup:JobTaskGroup"
                    },
                    "description": "`(list of maps)` - A list of the job's task groups.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string)` - Volume type.\n"
                },
                "updateStrategies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/JobUpdateStrategy:JobUpdateStrategy"
                    },
                    "description": "`(list of maps)` - Effective update strategy for the task group.\n"
                },
                "version": {
                    "type": "integer",
                    "description": "`(integer)` - The current job version.\n"
                }
            },
            "required": [
                "allAtOnce",
                "allocationIds",
                "constraints",
                "createIndex",
                "datacenters",
                "deploymentId",
                "deploymentStatus",
                "jobspec",
                "modifyIndex",
                "name",
                "namespace",
                "parentId",
                "periodicConfigs",
                "priority",
                "region",
                "stable",
                "status",
                "statusDescription",
                "stop",
                "submitTime",
                "taskGroups",
                "type",
                "updateStrategies",
                "version"
            ],
            "inputProperties": {
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - Determines if the job will be\nderegistered when this resource is destroyed in Terraform.\n"
                },
                "deregisterOnIdChange": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - Determines if the job will be\nderegistered if the ID of the job in the jobspec changes.\n"
                },
                "detach": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the provider will return immediately\nafter creating or updating, instead of monitoring.\n"
                },
                "hcl2": {
                    "$ref": "#/types/nomad:index/JobHcl2:JobHcl2",
                    "description": "`(block: optional)` - Options for the HCL2 jobspec parser.\n"
                },
                "jobspec": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the jobspec to register.\n"
                },
                "json": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if your jobspec is structured with\nJSON instead of the default HCL.\n"
                },
                "policyOverride": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Determines if the job will override any\nsoft-mandatory Sentinel policies and register even if they fail.\n"
                },
                "preserveCounts": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - If true, preserves the current task\ngroup counts already stored in Nomad during job registration instead of\napplying the counts from the submitted jobspec.\n"
                },
                "purgeOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to true if you want the job to\nbe purged when the resource is destroyed.\n"
                },
                "readAllocationIds": {
                    "type": "boolean",
                    "deprecationMessage": "Retrieving allocation IDs from the job resource is deprecated and will be removed in a future release. Use the\u003cspan pulumi-lang-nodejs=\" nomad.getAllocations \" pulumi-lang-dotnet=\" nomad.getAllocations \" pulumi-lang-go=\" getAllocations \" pulumi-lang-python=\" get_allocations \" pulumi-lang-yaml=\" nomad.getAllocations \" pulumi-lang-java=\" nomad.getAllocations \"\u003e nomad.getAllocations \u003c/span\u003edata source instead."
                },
                "rerunIfDead": {
                    "type": "boolean",
                    "description": "`(boolean: false)` - Set this to true to force the job to run\nagain if its status is \u003cspan pulumi-lang-nodejs=\"`dead`\" pulumi-lang-dotnet=\"`Dead`\" pulumi-lang-go=\"`dead`\" pulumi-lang-python=\"`dead`\" pulumi-lang-yaml=\"`dead`\" pulumi-lang-java=\"`dead`\"\u003e`dead`\u003c/span\u003e.\n"
                }
            },
            "requiredInputs": [
                "jobspec"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Job resources.\n",
                "properties": {
                    "allAtOnce": {
                        "type": "boolean",
                        "description": "`(boolean)` - Whether the scheduler can make partial placements on oversubscribed nodes.\n"
                    },
                    "allocationIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "`(list of strings)` - Allocation IDs associated with the job when \u003cspan pulumi-lang-nodejs=\"`readAllocationIds \" pulumi-lang-dotnet=\"`ReadAllocationIds \" pulumi-lang-go=\"`readAllocationIds \" pulumi-lang-python=\"`read_allocation_ids \" pulumi-lang-yaml=\"`readAllocationIds \" pulumi-lang-java=\"`readAllocationIds \"\u003e`readAllocationIds \u003c/span\u003e= true`.\n",
                        "deprecationMessage": "Retrieving allocation IDs from the job resource is deprecated and will be removed in a future release. Use the\u003cspan pulumi-lang-nodejs=\" nomad.getAllocations \" pulumi-lang-dotnet=\" nomad.getAllocations \" pulumi-lang-go=\" getAllocations \" pulumi-lang-python=\" get_allocations \" pulumi-lang-yaml=\" nomad.getAllocations \" pulumi-lang-java=\" nomad.getAllocations \"\u003e nomad.getAllocations \u003c/span\u003edata source instead."
                    },
                    "constraints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/JobConstraint:JobConstraint"
                        },
                        "description": "`(list of maps)` - Job constraints.\n"
                    },
                    "createIndex": {
                        "type": "integer",
                        "description": "`(integer)` - The job creation index.\n"
                    },
                    "datacenters": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "`(set of strings)` - The target datacenters for the job.\n"
                    },
                    "deploymentId": {
                        "type": "string",
                        "description": "`(string)` - If `detach = false`, the deployment associated with the last create or update, if one exists.\n"
                    },
                    "deploymentStatus": {
                        "type": "string",
                        "description": "`(string)` - If `detach = false`, the status for the deployment associated with the last create or update, if one exists.\n"
                    },
                    "deregisterOnDestroy": {
                        "type": "boolean",
                        "description": "`(boolean: true)` - Determines if the job will be\nderegistered when this resource is destroyed in Terraform.\n"
                    },
                    "deregisterOnIdChange": {
                        "type": "boolean",
                        "description": "`(boolean: true)` - Determines if the job will be\nderegistered if the ID of the job in the jobspec changes.\n"
                    },
                    "detach": {
                        "type": "boolean",
                        "description": "`(boolean: true)` - If true, the provider will return immediately\nafter creating or updating, instead of monitoring.\n"
                    },
                    "hcl2": {
                        "$ref": "#/types/nomad:index/JobHcl2:JobHcl2",
                        "description": "`(block: optional)` - Options for the HCL2 jobspec parser.\n"
                    },
                    "jobspec": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The contents of the jobspec to register.\n"
                    },
                    "json": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - Set this to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if your jobspec is structured with\nJSON instead of the default HCL.\n"
                    },
                    "modifyIndex": {
                        "type": "string",
                        "description": "`(string)` - Integer that increments for each change. Used to detect any changes between plan and apply.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string)` - Volume name.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string)` - The namespace of the job, as derived from the jobspec.\n"
                    },
                    "parentId": {
                        "type": "string",
                        "description": "`(string)` - The parent job ID, if applicable.\n"
                    },
                    "periodicConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/JobPeriodicConfig:JobPeriodicConfig"
                        },
                        "description": "`(list of maps)` - The job's periodic configuration.\n"
                    },
                    "policyOverride": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - Determines if the job will override any\nsoft-mandatory Sentinel policies and register even if they fail.\n"
                    },
                    "preserveCounts": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - If true, preserves the current task\ngroup counts already stored in Nomad during job registration instead of\napplying the counts from the submitted jobspec.\n"
                    },
                    "priority": {
                        "type": "integer",
                        "description": "`(integer)` - The job priority for scheduling and resource access.\n"
                    },
                    "purgeOnDestroy": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - Set this to true if you want the job to\nbe purged when the resource is destroyed.\n"
                    },
                    "readAllocationIds": {
                        "type": "boolean",
                        "deprecationMessage": "Retrieving allocation IDs from the job resource is deprecated and will be removed in a future release. Use the\u003cspan pulumi-lang-nodejs=\" nomad.getAllocations \" pulumi-lang-dotnet=\" nomad.getAllocations \" pulumi-lang-go=\" getAllocations \" pulumi-lang-python=\" get_allocations \" pulumi-lang-yaml=\" nomad.getAllocations \" pulumi-lang-java=\" nomad.getAllocations \"\u003e nomad.getAllocations \u003c/span\u003edata source instead."
                    },
                    "region": {
                        "type": "string",
                        "description": "`(string)` - The target region for the job.\n"
                    },
                    "rerunIfDead": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - Set this to true to force the job to run\nagain if its status is \u003cspan pulumi-lang-nodejs=\"`dead`\" pulumi-lang-dotnet=\"`Dead`\" pulumi-lang-go=\"`dead`\" pulumi-lang-python=\"`dead`\" pulumi-lang-yaml=\"`dead`\" pulumi-lang-java=\"`dead`\"\u003e`dead`\u003c/span\u003e.\n"
                    },
                    "stable": {
                        "type": "boolean",
                        "description": "`(boolean)` - Whether the job is stable.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "`(string)` - The current status of the job.\n"
                    },
                    "statusDescription": {
                        "type": "string",
                        "description": "`(string)` - Additional status information returned by Nomad.\n"
                    },
                    "stop": {
                        "type": "boolean",
                        "description": "`(boolean)` - Whether the job is stopped.\n"
                    },
                    "submitTime": {
                        "type": "string",
                        "description": "`(integer)` - The Unix timestamp when the job was submitted.\n"
                    },
                    "taskGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/JobTaskGroup:JobTaskGroup"
                        },
                        "description": "`(list of maps)` - A list of the job's task groups.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string)` - Volume type.\n"
                    },
                    "updateStrategies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/JobUpdateStrategy:JobUpdateStrategy"
                        },
                        "description": "`(list of maps)` - Effective update strategy for the task group.\n"
                    },
                    "version": {
                        "type": "integer",
                        "description": "`(integer)` - The current job version.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/namespace:Namespace": {
            "description": "Provisions a namespace within a Nomad cluster.\n\nNomad auto-generates a default namespace called \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. This namespace\ncannot be removed, so destroying a \u003cspan pulumi-lang-nodejs=\"`nomad.Namespace`\" pulumi-lang-dotnet=\"`nomad.Namespace`\" pulumi-lang-go=\"`Namespace`\" pulumi-lang-python=\"`Namespace`\" pulumi-lang-yaml=\"`nomad.Namespace`\" pulumi-lang-java=\"`nomad.Namespace`\"\u003e`nomad.Namespace`\u003c/span\u003e resource where\n`name = \"default\"` will cause the namespace to be reset to its default\nconfiguration.\n\n## Example Usage\n\nRegistering a namespace:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst dev = new nomad.Namespace(\"dev\", {\n    name: \"dev\",\n    description: \"Shared development environment.\",\n    quota: \"dev\",\n    meta: {\n        owner: \"John Doe\",\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndev = nomad.Namespace(\"dev\",\n    name=\"dev\",\n    description=\"Shared development environment.\",\n    quota=\"dev\",\n    meta={\n        \"owner\": \"John Doe\",\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dev = new Nomad.Index.Namespace(\"dev\", new()\n    {\n        Name = \"dev\",\n        Description = \"Shared development environment.\",\n        Quota = \"dev\",\n        Meta = \n        {\n            { \"owner\", \"John Doe\" },\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewNamespace(ctx, \"dev\", \u0026nomad.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"dev\"),\n\t\t\tDescription: pulumi.String(\"Shared development environment.\"),\n\t\t\tQuota:       pulumi.String(\"dev\"),\n\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\"owner\": pulumi.String(\"John Doe\"),\n\t\t\t\t\"foo\":   pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.Namespace;\nimport com.pulumi.nomad.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dev = new Namespace(\"dev\", NamespaceArgs.builder()\n            .name(\"dev\")\n            .description(\"Shared development environment.\")\n            .quota(\"dev\")\n            .meta(Map.ofEntries(\n                Map.entry(\"owner\", \"John Doe\"),\n                Map.entry(\"foo\", \"bar\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dev:\n    type: nomad:Namespace\n    properties:\n      name: dev\n      description: Shared development environment.\n      quota: dev\n      meta:\n        owner: John Doe\n        foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nRegistering a namespace with a quota:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst webTeam = new nomad.QuoteSpecification(\"web_team\", {\n    name: \"web-team\",\n    description: \"web team quota\",\n    limits: [{\n        region: \"global\",\n        regionLimit: {\n            cpu: 1000,\n            memoryMb: 256,\n        },\n    }],\n});\nconst web = new nomad.Namespace(\"web\", {\n    name: \"web\",\n    description: \"Web team production environment.\",\n    quota: webTeam.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nweb_team = nomad.QuoteSpecification(\"web_team\",\n    name=\"web-team\",\n    description=\"web team quota\",\n    limits=[{\n        \"region\": \"global\",\n        \"region_limit\": {\n            \"cpu\": 1000,\n            \"memory_mb\": 256,\n        },\n    }])\nweb = nomad.Namespace(\"web\",\n    name=\"web\",\n    description=\"Web team production environment.\",\n    quota=web_team.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var webTeam = new Nomad.Index.QuoteSpecification(\"web_team\", new()\n    {\n        Name = \"web-team\",\n        Description = \"web team quota\",\n        Limits = new[]\n        {\n            new Nomad.Inputs.QuoteSpecificationLimitArgs\n            {\n                Region = \"global\",\n                RegionLimit = new Nomad.Inputs.QuoteSpecificationLimitRegionLimitArgs\n                {\n                    Cpu = 1000,\n                    MemoryMb = 256,\n                },\n            },\n        },\n    });\n\n    var web = new Nomad.Index.Namespace(\"web\", new()\n    {\n        Name = \"web\",\n        Description = \"Web team production environment.\",\n        Quota = webTeam.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twebTeam, err := nomad.NewQuoteSpecification(ctx, \"web_team\", \u0026nomad.QuoteSpecificationArgs{\n\t\t\tName:        pulumi.String(\"web-team\"),\n\t\t\tDescription: pulumi.String(\"web team quota\"),\n\t\t\tLimits: nomad.QuoteSpecificationLimitArray{\n\t\t\t\t\u0026nomad.QuoteSpecificationLimitArgs{\n\t\t\t\t\tRegion: pulumi.String(\"global\"),\n\t\t\t\t\tRegionLimit: \u0026nomad.QuoteSpecificationLimitRegionLimitArgs{\n\t\t\t\t\t\tCpu:      pulumi.Int(1000),\n\t\t\t\t\t\tMemoryMb: pulumi.Int(256),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewNamespace(ctx, \"web\", \u0026nomad.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"web\"),\n\t\t\tDescription: pulumi.String(\"Web team production environment.\"),\n\t\t\tQuota:       webTeam.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.QuoteSpecification;\nimport com.pulumi.nomad.QuoteSpecificationArgs;\nimport com.pulumi.nomad.inputs.QuoteSpecificationLimitArgs;\nimport com.pulumi.nomad.inputs.QuoteSpecificationLimitRegionLimitArgs;\nimport com.pulumi.nomad.Namespace;\nimport com.pulumi.nomad.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var webTeam = new QuoteSpecification(\"webTeam\", QuoteSpecificationArgs.builder()\n            .name(\"web-team\")\n            .description(\"web team quota\")\n            .limits(QuoteSpecificationLimitArgs.builder()\n                .region(\"global\")\n                .regionLimit(QuoteSpecificationLimitRegionLimitArgs.builder()\n                    .cpu(1000)\n                    .memoryMb(256)\n                    .build())\n                .build())\n            .build());\n\n        var web = new Namespace(\"web\", NamespaceArgs.builder()\n            .name(\"web\")\n            .description(\"Web team production environment.\")\n            .quota(webTeam.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  webTeam:\n    type: nomad:QuoteSpecification\n    name: web_team\n    properties:\n      name: web-team\n      description: web team quota\n      limits:\n        - region: global\n          regionLimit:\n            cpu: 1000\n            memoryMb: 256\n  web:\n    type: nomad:Namespace\n    properties:\n      name: web\n      description: Web team production environment.\n      quota: ${webTeam.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "capabilities": {
                    "$ref": "#/types/nomad:index/NamespaceCapabilities:NamespaceCapabilities",
                    "description": "`(block: \u003coptional\u003e)` - A block of capabilities for the namespace. Can't\nbe repeated. See below for the structure of this block.\n"
                },
                "consulConfig": {
                    "$ref": "#/types/nomad:index/NamespaceConsulConfig:NamespaceConsulConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with Consul configuration for the namespace (Nomad Enterprise only).\n"
                },
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the namespace.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` -  Specifies arbitrary KV metadata to associate with the namespace.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the namespace.\n"
                },
                "nodePoolConfig": {
                    "$ref": "#/types/nomad:index/NamespaceNodePoolConfig:NamespaceNodePoolConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with node pool configuration for the namespace (Nomad Enterprise only).\n"
                },
                "quota": {
                    "type": "string",
                    "description": "`(string: \"\")` - A resource quota to attach to the namespace.\n"
                },
                "vaultConfig": {
                    "$ref": "#/types/nomad:index/NamespaceVaultConfig:NamespaceVaultConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with Vault configuration for the namespace (Nomad Enterprise only).\n"
                }
            },
            "required": [
                "consulConfig",
                "name",
                "nodePoolConfig",
                "vaultConfig"
            ],
            "inputProperties": {
                "capabilities": {
                    "$ref": "#/types/nomad:index/NamespaceCapabilities:NamespaceCapabilities",
                    "description": "`(block: \u003coptional\u003e)` - A block of capabilities for the namespace. Can't\nbe repeated. See below for the structure of this block.\n"
                },
                "consulConfig": {
                    "$ref": "#/types/nomad:index/NamespaceConsulConfig:NamespaceConsulConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with Consul configuration for the namespace (Nomad Enterprise only).\n"
                },
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the namespace.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` -  Specifies arbitrary KV metadata to associate with the namespace.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the namespace.\n",
                    "willReplaceOnChanges": true
                },
                "nodePoolConfig": {
                    "$ref": "#/types/nomad:index/NamespaceNodePoolConfig:NamespaceNodePoolConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with node pool configuration for the namespace (Nomad Enterprise only).\n"
                },
                "quota": {
                    "type": "string",
                    "description": "`(string: \"\")` - A resource quota to attach to the namespace.\n"
                },
                "vaultConfig": {
                    "$ref": "#/types/nomad:index/NamespaceVaultConfig:NamespaceVaultConfig",
                    "description": "`(block: \u003coptional\u003e)` - A block with Vault configuration for the namespace (Nomad Enterprise only).\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Namespace resources.\n",
                "properties": {
                    "capabilities": {
                        "$ref": "#/types/nomad:index/NamespaceCapabilities:NamespaceCapabilities",
                        "description": "`(block: \u003coptional\u003e)` - A block of capabilities for the namespace. Can't\nbe repeated. See below for the structure of this block.\n"
                    },
                    "consulConfig": {
                        "$ref": "#/types/nomad:index/NamespaceConsulConfig:NamespaceConsulConfig",
                        "description": "`(block: \u003coptional\u003e)` - A block with Consul configuration for the namespace (Nomad Enterprise only).\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - A description of the namespace.\n"
                    },
                    "meta": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` -  Specifies arbitrary KV metadata to associate with the namespace.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A unique name for the namespace.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodePoolConfig": {
                        "$ref": "#/types/nomad:index/NamespaceNodePoolConfig:NamespaceNodePoolConfig",
                        "description": "`(block: \u003coptional\u003e)` - A block with node pool configuration for the namespace (Nomad Enterprise only).\n"
                    },
                    "quota": {
                        "type": "string",
                        "description": "`(string: \"\")` - A resource quota to attach to the namespace.\n"
                    },
                    "vaultConfig": {
                        "$ref": "#/types/nomad:index/NamespaceVaultConfig:NamespaceVaultConfig",
                        "description": "`(block: \u003coptional\u003e)` - A block with Vault configuration for the namespace (Nomad Enterprise only).\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/nodePool:NodePool": {
            "description": "Provisions a node pool within a Nomad cluster.\n\n## Example Usage\n\nRegistering a node pool:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst dev = new nomad.NodePool(\"dev\", {\n    name: \"dev\",\n    description: \"Nodes for the development environment.\",\n    meta: {\n        department: \"Engineering\",\n        env: \"dev\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndev = nomad.NodePool(\"dev\",\n    name=\"dev\",\n    description=\"Nodes for the development environment.\",\n    meta={\n        \"department\": \"Engineering\",\n        \"env\": \"dev\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dev = new Nomad.Index.NodePool(\"dev\", new()\n    {\n        Name = \"dev\",\n        Description = \"Nodes for the development environment.\",\n        Meta = \n        {\n            { \"department\", \"Engineering\" },\n            { \"env\", \"dev\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewNodePool(ctx, \"dev\", \u0026nomad.NodePoolArgs{\n\t\t\tName:        pulumi.String(\"dev\"),\n\t\t\tDescription: pulumi.String(\"Nodes for the development environment.\"),\n\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\"department\": pulumi.String(\"Engineering\"),\n\t\t\t\t\"env\":        pulumi.String(\"dev\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NodePool;\nimport com.pulumi.nomad.NodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dev = new NodePool(\"dev\", NodePoolArgs.builder()\n            .name(\"dev\")\n            .description(\"Nodes for the development environment.\")\n            .meta(Map.ofEntries(\n                Map.entry(\"department\", \"Engineering\"),\n                Map.entry(\"env\", \"dev\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dev:\n    type: nomad:NodePool\n    properties:\n      name: dev\n      description: Nodes for the development environment.\n      meta:\n        department: Engineering\n        env: dev\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string)` - The description of the node pool.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Arbitrary KV metadata associated with the\nnode pool.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The name of the node pool.\n"
                },
                "nodeIdentityTtl": {
                    "type": "string",
                    "description": "`(string)` - The TTL applied to node identities issued to\nnodes in this pool.\n"
                },
                "schedulerConfig": {
                    "$ref": "#/types/nomad:index/NodePoolSchedulerConfig:NodePoolSchedulerConfig",
                    "description": "`(block)` - Scheduler configuration for the node pool.\n"
                }
            },
            "required": [
                "name",
                "nodeIdentityTtl"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "`(string)` - The description of the node pool.\n"
                },
                "meta": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - Arbitrary KV metadata associated with the\nnode pool.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string)` - The name of the node pool.\n",
                    "willReplaceOnChanges": true
                },
                "nodeIdentityTtl": {
                    "type": "string",
                    "description": "`(string)` - The TTL applied to node identities issued to\nnodes in this pool.\n"
                },
                "schedulerConfig": {
                    "$ref": "#/types/nomad:index/NodePoolSchedulerConfig:NodePoolSchedulerConfig",
                    "description": "`(block)` - Scheduler configuration for the node pool.\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NodePool resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "`(string)` - The description of the node pool.\n"
                    },
                    "meta": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` - Arbitrary KV metadata associated with the\nnode pool.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string)` - The name of the node pool.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodeIdentityTtl": {
                        "type": "string",
                        "description": "`(string)` - The TTL applied to node identities issued to\nnodes in this pool.\n"
                    },
                    "schedulerConfig": {
                        "$ref": "#/types/nomad:index/NodePoolSchedulerConfig:NodePoolSchedulerConfig",
                        "description": "`(block)` - Scheduler configuration for the node pool.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/quoteSpecification:QuoteSpecification": {
            "description": "Manages a quota specification in a Nomad cluster.\n\n## Example Usage\n\nRegistering a quota specification:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst prodApi = new nomad.QuoteSpecification(\"prod_api\", {\n    name: \"prod-api\",\n    description: \"Production instances of backend API servers\",\n    limits: [{\n        region: \"global\",\n        regionLimit: {\n            cpu: 2400,\n            cores: 4,\n            memoryMb: 1200,\n            memoryMaxMb: 2400,\n            devices: [{\n                name: \"nvidia/gpu\",\n                count: 2,\n            }],\n            nodePools: [{\n                nodePool: \"batch\",\n                cpu: 800,\n                cores: 2,\n                memoryMb: 1024,\n                memoryMaxMb: 2048,\n                devices: [{\n                    name: \"fpga\",\n                    count: 1,\n                }],\n                storage: {\n                    variablesMb: 25,\n                    hostVolumesMb: 50,\n                },\n            }],\n            storage: {\n                variablesMb: 500,\n                hostVolumesMb: 1000,\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nprod_api = nomad.QuoteSpecification(\"prod_api\",\n    name=\"prod-api\",\n    description=\"Production instances of backend API servers\",\n    limits=[{\n        \"region\": \"global\",\n        \"region_limit\": {\n            \"cpu\": 2400,\n            \"cores\": 4,\n            \"memory_mb\": 1200,\n            \"memory_max_mb\": 2400,\n            \"devices\": [{\n                \"name\": \"nvidia/gpu\",\n                \"count\": 2,\n            }],\n            \"node_pools\": [{\n                \"node_pool\": \"batch\",\n                \"cpu\": 800,\n                \"cores\": 2,\n                \"memory_mb\": 1024,\n                \"memory_max_mb\": 2048,\n                \"devices\": [{\n                    \"name\": \"fpga\",\n                    \"count\": 1,\n                }],\n                \"storage\": {\n                    \"variables_mb\": 25,\n                    \"host_volumes_mb\": 50,\n                },\n            }],\n            \"storage\": {\n                \"variables_mb\": 500,\n                \"host_volumes_mb\": 1000,\n            },\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prodApi = new Nomad.Index.QuoteSpecification(\"prod_api\", new()\n    {\n        Name = \"prod-api\",\n        Description = \"Production instances of backend API servers\",\n        Limits = new[]\n        {\n            new Nomad.Inputs.QuoteSpecificationLimitArgs\n            {\n                Region = \"global\",\n                RegionLimit = new Nomad.Inputs.QuoteSpecificationLimitRegionLimitArgs\n                {\n                    Cpu = 2400,\n                    Cores = 4,\n                    MemoryMb = 1200,\n                    MemoryMaxMb = 2400,\n                    Devices = new[]\n                    {\n                        new Nomad.Inputs.QuoteSpecificationLimitRegionLimitDeviceArgs\n                        {\n                            Name = \"nvidia/gpu\",\n                            Count = 2,\n                        },\n                    },\n                    NodePools = new[]\n                    {\n                        new Nomad.Inputs.QuoteSpecificationLimitRegionLimitNodePoolArgs\n                        {\n                            NodePool = \"batch\",\n                            Cpu = 800,\n                            Cores = 2,\n                            MemoryMb = 1024,\n                            MemoryMaxMb = 2048,\n                            Devices = new[]\n                            {\n                                new Nomad.Inputs.QuoteSpecificationLimitRegionLimitNodePoolDeviceArgs\n                                {\n                                    Name = \"fpga\",\n                                    Count = 1,\n                                },\n                            },\n                            Storage = new Nomad.Inputs.QuoteSpecificationLimitRegionLimitNodePoolStorageArgs\n                            {\n                                VariablesMb = 25,\n                                HostVolumesMb = 50,\n                            },\n                        },\n                    },\n                    Storage = new Nomad.Inputs.QuoteSpecificationLimitRegionLimitStorageArgs\n                    {\n                        VariablesMb = 500,\n                        HostVolumesMb = 1000,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewQuoteSpecification(ctx, \"prod_api\", \u0026nomad.QuoteSpecificationArgs{\n\t\t\tName:        pulumi.String(\"prod-api\"),\n\t\t\tDescription: pulumi.String(\"Production instances of backend API servers\"),\n\t\t\tLimits: nomad.QuoteSpecificationLimitArray{\n\t\t\t\t\u0026nomad.QuoteSpecificationLimitArgs{\n\t\t\t\t\tRegion: pulumi.String(\"global\"),\n\t\t\t\t\tRegionLimit: \u0026nomad.QuoteSpecificationLimitRegionLimitArgs{\n\t\t\t\t\t\tCpu:         pulumi.Int(2400),\n\t\t\t\t\t\tCores:       pulumi.Int(4),\n\t\t\t\t\t\tMemoryMb:    pulumi.Int(1200),\n\t\t\t\t\t\tMemoryMaxMb: pulumi.Int(2400),\n\t\t\t\t\t\tDevices: nomad.QuoteSpecificationLimitRegionLimitDeviceArray{\n\t\t\t\t\t\t\t\u0026nomad.QuoteSpecificationLimitRegionLimitDeviceArgs{\n\t\t\t\t\t\t\t\tName:  pulumi.String(\"nvidia/gpu\"),\n\t\t\t\t\t\t\t\tCount: pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNodePools: nomad.QuoteSpecificationLimitRegionLimitNodePoolArray{\n\t\t\t\t\t\t\t\u0026nomad.QuoteSpecificationLimitRegionLimitNodePoolArgs{\n\t\t\t\t\t\t\t\tNodePool:    pulumi.String(\"batch\"),\n\t\t\t\t\t\t\t\tCpu:         pulumi.Int(800),\n\t\t\t\t\t\t\t\tCores:       pulumi.Int(2),\n\t\t\t\t\t\t\t\tMemoryMb:    pulumi.Int(1024),\n\t\t\t\t\t\t\t\tMemoryMaxMb: pulumi.Int(2048),\n\t\t\t\t\t\t\t\tDevices: nomad.QuoteSpecificationLimitRegionLimitNodePoolDeviceArray{\n\t\t\t\t\t\t\t\t\t\u0026nomad.QuoteSpecificationLimitRegionLimitNodePoolDeviceArgs{\n\t\t\t\t\t\t\t\t\t\tName:  pulumi.String(\"fpga\"),\n\t\t\t\t\t\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tStorage: \u0026nomad.QuoteSpecificationLimitRegionLimitNodePoolStorageArgs{\n\t\t\t\t\t\t\t\t\tVariablesMb:   pulumi.Int(25),\n\t\t\t\t\t\t\t\t\tHostVolumesMb: pulumi.Int(50),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tStorage: \u0026nomad.QuoteSpecificationLimitRegionLimitStorageArgs{\n\t\t\t\t\t\t\tVariablesMb:   pulumi.Int(500),\n\t\t\t\t\t\t\tHostVolumesMb: pulumi.Int(1000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.QuoteSpecification;\nimport com.pulumi.nomad.QuoteSpecificationArgs;\nimport com.pulumi.nomad.inputs.QuoteSpecificationLimitArgs;\nimport com.pulumi.nomad.inputs.QuoteSpecificationLimitRegionLimitArgs;\nimport com.pulumi.nomad.inputs.QuoteSpecificationLimitRegionLimitStorageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var prodApi = new QuoteSpecification(\"prodApi\", QuoteSpecificationArgs.builder()\n            .name(\"prod-api\")\n            .description(\"Production instances of backend API servers\")\n            .limits(QuoteSpecificationLimitArgs.builder()\n                .region(\"global\")\n                .regionLimit(QuoteSpecificationLimitRegionLimitArgs.builder()\n                    .cpu(2400)\n                    .cores(4)\n                    .memoryMb(1200)\n                    .memoryMaxMb(2400)\n                    .devices(QuoteSpecificationLimitRegionLimitDeviceArgs.builder()\n                        .name(\"nvidia/gpu\")\n                        .count(2)\n                        .build())\n                    .nodePools(QuoteSpecificationLimitRegionLimitNodePoolArgs.builder()\n                        .nodePool(\"batch\")\n                        .cpu(800)\n                        .cores(2)\n                        .memoryMb(1024)\n                        .memoryMaxMb(2048)\n                        .devices(QuoteSpecificationLimitRegionLimitNodePoolDeviceArgs.builder()\n                            .name(\"fpga\")\n                            .count(1)\n                            .build())\n                        .storage(QuoteSpecificationLimitRegionLimitNodePoolStorageArgs.builder()\n                            .variablesMb(25)\n                            .hostVolumesMb(50)\n                            .build())\n                        .build())\n                    .storage(QuoteSpecificationLimitRegionLimitStorageArgs.builder()\n                        .variablesMb(500)\n                        .hostVolumesMb(1000)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  prodApi:\n    type: nomad:QuoteSpecification\n    name: prod_api\n    properties:\n      name: prod-api\n      description: Production instances of backend API servers\n      limits:\n        - region: global\n          regionLimit:\n            cpu: 2400\n            cores: 4\n            memoryMb: 1200\n            memoryMaxMb: 2400\n            devices:\n              - name: nvidia/gpu\n                count: 2\n            nodePools:\n              - nodePool: batch\n                cpu: 800\n                cores: 2\n                memoryMb: 1024\n                memoryMaxMb: 2048\n                devices:\n                  - name: fpga\n                    count: 1\n                storage:\n                  variablesMb: 25\n                  hostVolumesMb: 50\n            storage:\n              variablesMb: 500\n              hostVolumesMb: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the quota specification.\n- \u003cspan pulumi-lang-nodejs=\"`limits`\" pulumi-lang-dotnet=\"`Limits`\" pulumi-lang-go=\"`limits`\" pulumi-lang-python=\"`limits`\" pulumi-lang-yaml=\"`limits`\" pulumi-lang-java=\"`limits`\"\u003e`limits`\u003c/span\u003e `(block: \u003crequired\u003e)` - A block of quota limits to enforce. Can\nbe repeated. See below for the structure of this block.\n"
                },
                "limits": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/QuoteSpecificationLimit:QuoteSpecificationLimit"
                    },
                    "description": "Limits encapsulated by this quota specification."
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the quota specification.\n"
                }
            },
            "required": [
                "limits",
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the quota specification.\n- \u003cspan pulumi-lang-nodejs=\"`limits`\" pulumi-lang-dotnet=\"`Limits`\" pulumi-lang-go=\"`limits`\" pulumi-lang-python=\"`limits`\" pulumi-lang-yaml=\"`limits`\" pulumi-lang-java=\"`limits`\"\u003e`limits`\u003c/span\u003e `(block: \u003crequired\u003e)` - A block of quota limits to enforce. Can\nbe repeated. See below for the structure of this block.\n"
                },
                "limits": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/QuoteSpecificationLimit:QuoteSpecificationLimit"
                    },
                    "description": "Limits encapsulated by this quota specification."
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the quota specification.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "limits"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering QuoteSpecification resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - A description of the quota specification.\n- \u003cspan pulumi-lang-nodejs=\"`limits`\" pulumi-lang-dotnet=\"`Limits`\" pulumi-lang-go=\"`limits`\" pulumi-lang-python=\"`limits`\" pulumi-lang-yaml=\"`limits`\" pulumi-lang-java=\"`limits`\"\u003e`limits`\u003c/span\u003e `(block: \u003crequired\u003e)` - A block of quota limits to enforce. Can\nbe repeated. See below for the structure of this block.\n"
                    },
                    "limits": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/QuoteSpecificationLimit:QuoteSpecificationLimit"
                        },
                        "description": "Limits encapsulated by this quota specification."
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A unique name for the quota specification.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/schedulerConfig:SchedulerConfig": {
            "description": "Manages scheduler configuration of the Nomad cluster.\n\n\u003e **Warning:** destroying this resource will not have any effect in the\ncluster configuration, since there's no clear definition of what a destroy\naction should do. The cluster will be left as-is and only the state reference\nwill be removed.\n\n## Example Usage\n\nSet cluster scheduler configuration:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst config = new nomad.SchedulerConfig(\"config\", {\n    schedulerAlgorithm: \"spread\",\n    memoryOversubscriptionEnabled: true,\n    preemptionConfig: {\n        system_scheduler_enabled: true,\n        batch_scheduler_enabled: true,\n        service_scheduler_enabled: true,\n        sysbatch_scheduler_enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nconfig = nomad.SchedulerConfig(\"config\",\n    scheduler_algorithm=\"spread\",\n    memory_oversubscription_enabled=True,\n    preemption_config={\n        \"system_scheduler_enabled\": True,\n        \"batch_scheduler_enabled\": True,\n        \"service_scheduler_enabled\": True,\n        \"sysbatch_scheduler_enabled\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Nomad.Index.SchedulerConfig(\"config\", new()\n    {\n        SchedulerAlgorithm = \"spread\",\n        MemoryOversubscriptionEnabled = true,\n        PreemptionConfig = \n        {\n            { \"system_scheduler_enabled\", true },\n            { \"batch_scheduler_enabled\", true },\n            { \"service_scheduler_enabled\", true },\n            { \"sysbatch_scheduler_enabled\", true },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewSchedulerConfig(ctx, \"config\", \u0026nomad.SchedulerConfigArgs{\n\t\t\tSchedulerAlgorithm:            pulumi.String(\"spread\"),\n\t\t\tMemoryOversubscriptionEnabled: pulumi.Bool(true),\n\t\t\tPreemptionConfig: pulumi.BoolMap{\n\t\t\t\t\"system_scheduler_enabled\":   pulumi.Bool(true),\n\t\t\t\t\"batch_scheduler_enabled\":    pulumi.Bool(true),\n\t\t\t\t\"service_scheduler_enabled\":  pulumi.Bool(true),\n\t\t\t\t\"sysbatch_scheduler_enabled\": pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.SchedulerConfig;\nimport com.pulumi.nomad.SchedulerConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var config = new SchedulerConfig(\"config\", SchedulerConfigArgs.builder()\n            .schedulerAlgorithm(\"spread\")\n            .memoryOversubscriptionEnabled(true)\n            .preemptionConfig(Map.ofEntries(\n                Map.entry(\"system_scheduler_enabled\", true),\n                Map.entry(\"batch_scheduler_enabled\", true),\n                Map.entry(\"service_scheduler_enabled\", true),\n                Map.entry(\"sysbatch_scheduler_enabled\", true)\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: nomad:SchedulerConfig\n    properties:\n      schedulerAlgorithm: spread\n      memoryOversubscriptionEnabled: true\n      preemptionConfig:\n        system_scheduler_enabled: true\n        batch_scheduler_enabled: true\n        service_scheduler_enabled: true\n        sysbatch_scheduler_enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "memoryOversubscriptionEnabled": {
                    "type": "boolean",
                    "description": "`(bool: false)` - When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, tasks may exceed their reserved memory limit.\n"
                },
                "preemptionConfig": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "boolean"
                    },
                    "description": "`(map[string]bool)` - Options to enable preemption for various schedulers.\n"
                },
                "schedulerAlgorithm": {
                    "type": "string",
                    "description": "`(string: \"binpack\")` - Specifies whether scheduler binpacks or spreads allocations on available nodes. Possible values are \u003cspan pulumi-lang-nodejs=\"`binpack`\" pulumi-lang-dotnet=\"`Binpack`\" pulumi-lang-go=\"`binpack`\" pulumi-lang-python=\"`binpack`\" pulumi-lang-yaml=\"`binpack`\" pulumi-lang-java=\"`binpack`\"\u003e`binpack`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spread`\" pulumi-lang-dotnet=\"`Spread`\" pulumi-lang-go=\"`spread`\" pulumi-lang-python=\"`spread`\" pulumi-lang-yaml=\"`spread`\" pulumi-lang-java=\"`spread`\"\u003e`spread`\u003c/span\u003e.\n"
                }
            },
            "inputProperties": {
                "memoryOversubscriptionEnabled": {
                    "type": "boolean",
                    "description": "`(bool: false)` - When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, tasks may exceed their reserved memory limit.\n"
                },
                "preemptionConfig": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "boolean"
                    },
                    "description": "`(map[string]bool)` - Options to enable preemption for various schedulers.\n"
                },
                "schedulerAlgorithm": {
                    "type": "string",
                    "description": "`(string: \"binpack\")` - Specifies whether scheduler binpacks or spreads allocations on available nodes. Possible values are \u003cspan pulumi-lang-nodejs=\"`binpack`\" pulumi-lang-dotnet=\"`Binpack`\" pulumi-lang-go=\"`binpack`\" pulumi-lang-python=\"`binpack`\" pulumi-lang-yaml=\"`binpack`\" pulumi-lang-java=\"`binpack`\"\u003e`binpack`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spread`\" pulumi-lang-dotnet=\"`Spread`\" pulumi-lang-go=\"`spread`\" pulumi-lang-python=\"`spread`\" pulumi-lang-yaml=\"`spread`\" pulumi-lang-java=\"`spread`\"\u003e`spread`\u003c/span\u003e.\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SchedulerConfig resources.\n",
                "properties": {
                    "memoryOversubscriptionEnabled": {
                        "type": "boolean",
                        "description": "`(bool: false)` - When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, tasks may exceed their reserved memory limit.\n"
                    },
                    "preemptionConfig": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "boolean"
                        },
                        "description": "`(map[string]bool)` - Options to enable preemption for various schedulers.\n"
                    },
                    "schedulerAlgorithm": {
                        "type": "string",
                        "description": "`(string: \"binpack\")` - Specifies whether scheduler binpacks or spreads allocations on available nodes. Possible values are \u003cspan pulumi-lang-nodejs=\"`binpack`\" pulumi-lang-dotnet=\"`Binpack`\" pulumi-lang-go=\"`binpack`\" pulumi-lang-python=\"`binpack`\" pulumi-lang-yaml=\"`binpack`\" pulumi-lang-java=\"`binpack`\"\u003e`binpack`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spread`\" pulumi-lang-dotnet=\"`Spread`\" pulumi-lang-go=\"`spread`\" pulumi-lang-python=\"`spread`\" pulumi-lang-yaml=\"`spread`\" pulumi-lang-java=\"`spread`\"\u003e`spread`\u003c/span\u003e.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/sentinelPolicy:SentinelPolicy": {
            "description": "Manages a Sentinel policy registered in Nomad.\n\n\u003e **Enterprise Only!** This API endpoint and functionality only exists in\n   Nomad Enterprise. This is not present in the open source version of Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst exec_only = new nomad.SentinelPolicy(\"exec-only\", {\n    name: \"exec-only\",\n    description: \"Only allow jobs that are based on an exec driver.\",\n    policy: `main = rule { all_drivers_exec }\n\n# all_drivers_exec checks that all the drivers in use are exec\nall_drivers_exec = rule {\n    all job.task_groups as tg {\n        all tg.tasks as task {\n            task.driver is \\\"exec\\\"\n        }\n    }\n}\n`,\n    scope: \"submit-job\",\n    enforcementLevel: \"soft-mandatory\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexec_only = nomad.SentinelPolicy(\"exec-only\",\n    name=\"exec-only\",\n    description=\"Only allow jobs that are based on an exec driver.\",\n    policy=\"\"\"main = rule { all_drivers_exec }\n\n# all_drivers_exec checks that all the drivers in use are exec\nall_drivers_exec = rule {\n    all job.task_groups as tg {\n        all tg.tasks as task {\n            task.driver is \\\"exec\\\"\n        }\n    }\n}\n\"\"\",\n    scope=\"submit-job\",\n    enforcement_level=\"soft-mandatory\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exec_only = new Nomad.Index.SentinelPolicy(\"exec-only\", new()\n    {\n        Name = \"exec-only\",\n        Description = \"Only allow jobs that are based on an exec driver.\",\n        Policy = @\"main = rule { all_drivers_exec }\n\n# all_drivers_exec checks that all the drivers in use are exec\nall_drivers_exec = rule {\n    all job.task_groups as tg {\n        all tg.tasks as task {\n            task.driver is \\\"\"exec\\\"\"\n        }\n    }\n}\n\",\n        Scope = \"submit-job\",\n        EnforcementLevel = \"soft-mandatory\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewSentinelPolicy(ctx, \"exec-only\", \u0026nomad.SentinelPolicyArgs{\n\t\t\tName:        pulumi.String(\"exec-only\"),\n\t\t\tDescription: pulumi.String(\"Only allow jobs that are based on an exec driver.\"),\n\t\t\tPolicy: pulumi.Sprintf(`main = rule { all_drivers_exec }\n\n# all_drivers_exec checks that all the drivers in use are exec\nall_drivers_exec = rule {\n    all job.task_groups as tg {\n        all tg.tasks as task {\n            task.driver is \\\"exec\\\"\n        }\n    }\n}\n`),\n\t\t\tScope:            pulumi.String(\"submit-job\"),\n\t\t\tEnforcementLevel: pulumi.String(\"soft-mandatory\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.SentinelPolicy;\nimport com.pulumi.nomad.SentinelPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exec_only = new SentinelPolicy(\"exec-only\", SentinelPolicyArgs.builder()\n            .name(\"exec-only\")\n            .description(\"Only allow jobs that are based on an exec driver.\")\n            .policy(\"\"\"\nmain = rule { all_drivers_exec }\n\n# all_drivers_exec checks that all the drivers in use are exec\nall_drivers_exec = rule {\n    all job.task_groups as tg {\n        all tg.tasks as task {\n            task.driver is \\\"exec\\\"\n        }\n    }\n}\n            \"\"\")\n            .scope(\"submit-job\")\n            .enforcementLevel(\"soft-mandatory\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exec-only:\n    type: nomad:SentinelPolicy\n    properties:\n      name: exec-only\n      description: Only allow jobs that are based on an exec driver.\n      policy: |\n        main = rule { all_drivers_exec }\n\n        # all_drivers_exec checks that all the drivers in use are exec\n        all_drivers_exec = rule {\n            all job.task_groups as tg {\n                all tg.tasks as task {\n                    task.driver is \\\"exec\\\"\n                }\n            }\n        }\n      scope: submit-job\n      enforcementLevel: soft-mandatory\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the policy.\n\n[scope]: https://www.nomadproject.io/guides/sentinel-policy.html#policy-scope\n[enforcement-level]: https://www.nomadproject.io/guides/sentinel-policy.html#enforcement-level\n"
                },
                "enforcementLevel": {
                    "type": "string",
                    "description": "`(strings: \u003crequired\u003e)` - The [enforcement level][enforcement-level]\nfor this policy.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n"
                },
                "policy": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "`(strings: \u003crequired\u003e)` - The [scope][scope] for this policy.\n"
                }
            },
            "required": [
                "enforcementLevel",
                "name",
                "policy",
                "scope"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "`(string: \"\")` - A description of the policy.\n\n[scope]: https://www.nomadproject.io/guides/sentinel-policy.html#policy-scope\n[enforcement-level]: https://www.nomadproject.io/guides/sentinel-policy.html#enforcement-level\n"
                },
                "enforcementLevel": {
                    "type": "string",
                    "description": "`(strings: \u003crequired\u003e)` - The [enforcement level][enforcement-level]\nfor this policy.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n",
                    "willReplaceOnChanges": true
                },
                "policy": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register.\n"
                },
                "scope": {
                    "type": "string",
                    "description": "`(strings: \u003crequired\u003e)` - The [scope][scope] for this policy.\n"
                }
            },
            "requiredInputs": [
                "enforcementLevel",
                "policy",
                "scope"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SentinelPolicy resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "`(string: \"\")` - A description of the policy.\n\n[scope]: https://www.nomadproject.io/guides/sentinel-policy.html#policy-scope\n[enforcement-level]: https://www.nomadproject.io/guides/sentinel-policy.html#enforcement-level\n"
                    },
                    "enforcementLevel": {
                        "type": "string",
                        "description": "`(strings: \u003crequired\u003e)` - The [enforcement level][enforcement-level]\nfor this policy.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A unique name for the policy.\n",
                        "willReplaceOnChanges": true
                    },
                    "policy": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The contents of the policy to register.\n"
                    },
                    "scope": {
                        "type": "string",
                        "description": "`(strings: \u003crequired\u003e)` - The [scope][scope] for this policy.\n"
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/variable:Variable": {
            "description": "Creates and manages a variable, including it's contents, within a\nNomad cluster.\n\n\u003e **Warning:** this resource will store the sensitive values placed in\n  \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n\u003e **Note:** Use \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e when you want Terraform to\n  write variable items without storing those values in the state file.\n\n## Example Usage\n\nCreating a variable in the default namespace:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = new nomad.Variable(\"example\", {\n    path: \"some/path/of/your/choosing\",\n    items: {\n        example_key: \"example_value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.Variable(\"example\",\n    path=\"some/path/of/your/choosing\",\n    items={\n        \"example_key\": \"example_value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Nomad.Index.Variable(\"example\", new()\n    {\n        Path = \"some/path/of/your/choosing\",\n        Items = \n        {\n            { \"example_key\", \"example_value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewVariable(ctx, \"example\", \u0026nomad.VariableArgs{\n\t\t\tPath: pulumi.String(\"some/path/of/your/choosing\"),\n\t\t\tItems: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.Variable;\nimport com.pulumi.nomad.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Variable(\"example\", VariableArgs.builder()\n            .path(\"some/path/of/your/choosing\")\n            .items(Map.of(\"example_key\", \"example_value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: nomad:Variable\n    properties:\n      path: some/path/of/your/choosing\n      items:\n        example_key: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating a variable with write-only items:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = new nomad.Variable(\"example\", {\n    path: \"some/path/of/your/choosing\",\n    itemsWo: JSON.stringify({\n        example_key: \"example_value\",\n    }),\n    itemsWoVersion: 1,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_nomad as nomad\n\nexample = nomad.Variable(\"example\",\n    path=\"some/path/of/your/choosing\",\n    items_wo=json.dumps({\n        \"example_key\": \"example_value\",\n    }),\n    items_wo_version=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Nomad.Index.Variable(\"example\", new()\n    {\n        Path = \"some/path/of/your/choosing\",\n        ItemsWo = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"example_key\"] = \"example_value\",\n        }),\n        ItemsWoVersion = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"example_key\": \"example_value\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = nomad.NewVariable(ctx, \"example\", \u0026nomad.VariableArgs{\n\t\t\tPath:           pulumi.String(\"some/path/of/your/choosing\"),\n\t\t\tItemsWo:        pulumi.String(pulumi.String(json0)),\n\t\t\tItemsWoVersion: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.Variable;\nimport com.pulumi.nomad.VariableArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Variable(\"example\", VariableArgs.builder()\n            .path(\"some/path/of/your/choosing\")\n            .itemsWo(serializeJson(\n                jsonObject(\n                    jsonProperty(\"example_key\", \"example_value\")\n                )))\n            .itemsWoVersion(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: nomad:Variable\n    properties:\n      path: some/path/of/your/choosing\n      itemsWo:\n        fn::toJSON:\n          example_key: example_value\n      itemsWoVersion: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating a variable in a custom namespace:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = new nomad.Namespace(\"example\", {\n    name: \"example\",\n    description: \"Example namespace.\",\n});\nconst exampleVariable = new nomad.Variable(\"example\", {\n    path: \"some/path/of/your/choosing\",\n    namespace: example.name,\n    items: {\n        example_key: \"example_value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.Namespace(\"example\",\n    name=\"example\",\n    description=\"Example namespace.\")\nexample_variable = nomad.Variable(\"example\",\n    path=\"some/path/of/your/choosing\",\n    namespace=example.name,\n    items={\n        \"example_key\": \"example_value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Nomad.Index.Namespace(\"example\", new()\n    {\n        Name = \"example\",\n        Description = \"Example namespace.\",\n    });\n\n    var exampleVariable = new Nomad.Index.Variable(\"example\", new()\n    {\n        Path = \"some/path/of/your/choosing\",\n        Namespace = example.Name,\n        Items = \n        {\n            { \"example_key\", \"example_value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nomad.NewNamespace(ctx, \"example\", \u0026nomad.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"Example namespace.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewVariable(ctx, \"example\", \u0026nomad.VariableArgs{\n\t\t\tPath:      pulumi.String(\"some/path/of/your/choosing\"),\n\t\t\tNamespace: example.Name,\n\t\t\tItems: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.Namespace;\nimport com.pulumi.nomad.NamespaceArgs;\nimport com.pulumi.nomad.Variable;\nimport com.pulumi.nomad.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .name(\"example\")\n            .description(\"Example namespace.\")\n            .build());\n\n        var exampleVariable = new Variable(\"exampleVariable\", VariableArgs.builder()\n            .path(\"some/path/of/your/choosing\")\n            .namespace(example.name())\n            .items(Map.of(\"example_key\", \"example_value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: nomad:Namespace\n    properties:\n      name: example\n      description: Example namespace.\n  exampleVariable:\n    type: nomad:Variable\n    name: example\n    properties:\n      path: some/path/of/your/choosing\n      namespace: ${example.name}\n      items:\n        example_key: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "items": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - An arbitrary map of items to create in the variable. Conflicts with \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                    "secret": true
                },
                "itemsWo": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n`(string)` - A JSON-encoded map of variable items to write without storing those values in Terraform state. Conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e and requires \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                    "secret": true
                },
                "itemsWoVersion": {
                    "type": "integer",
                    "description": "`(number)` - A version marker for \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e. Required when using \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e, conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e, and should be incremented to apply a new write-only payload.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namepsace to create the variable in.\n"
                },
                "path": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique path to create the variable at.\n"
                }
            },
            "required": [
                "path"
            ],
            "inputProperties": {
                "items": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string)` - An arbitrary map of items to create in the variable. Conflicts with \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                    "secret": true
                },
                "itemsWo": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n`(string)` - A JSON-encoded map of variable items to write without storing those values in Terraform state. Conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e and requires \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                    "secret": true
                },
                "itemsWoVersion": {
                    "type": "integer",
                    "description": "`(number)` - A version marker for \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e. Required when using \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e, conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e, and should be incremented to apply a new write-only payload.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namepsace to create the variable in.\n",
                    "willReplaceOnChanges": true
                },
                "path": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - A unique path to create the variable at.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "path"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Variable resources.\n",
                "properties": {
                    "items": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` - An arbitrary map of items to create in the variable. Conflicts with \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                        "secret": true
                    },
                    "itemsWo": {
                        "type": "string",
                        "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n`(string)` - A JSON-encoded map of variable items to write without storing those values in Terraform state. Conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e and requires \u003cspan pulumi-lang-nodejs=\"`itemsWoVersion`\" pulumi-lang-dotnet=\"`ItemsWoVersion`\" pulumi-lang-go=\"`itemsWoVersion`\" pulumi-lang-python=\"`items_wo_version`\" pulumi-lang-yaml=\"`itemsWoVersion`\" pulumi-lang-java=\"`itemsWoVersion`\"\u003e`itemsWoVersion`\u003c/span\u003e.\n",
                        "secret": true
                    },
                    "itemsWoVersion": {
                        "type": "integer",
                        "description": "`(number)` - A version marker for \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e. Required when using \u003cspan pulumi-lang-nodejs=\"`itemsWo`\" pulumi-lang-dotnet=\"`ItemsWo`\" pulumi-lang-go=\"`itemsWo`\" pulumi-lang-python=\"`items_wo`\" pulumi-lang-yaml=\"`itemsWo`\" pulumi-lang-java=\"`itemsWo`\"\u003e`itemsWo`\u003c/span\u003e, conflicts with \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e, and should be incremented to apply a new write-only payload.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namepsace to create the variable in.\n",
                        "willReplaceOnChanges": true
                    },
                    "path": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - A unique path to create the variable at.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "nomad:index/volume:Volume": {
            "description": "\u003e **Deprecated:** This resource has been deprecated and may be removed in a\nfuture release. Use \u003cspan pulumi-lang-nodejs=\"`nomad.CsiVolumeRegistration`\" pulumi-lang-dotnet=\"`nomad.CsiVolumeRegistration`\" pulumi-lang-go=\"`CsiVolumeRegistration`\" pulumi-lang-python=\"`CsiVolumeRegistration`\" pulumi-lang-yaml=\"`nomad.CsiVolumeRegistration`\" pulumi-lang-java=\"`nomad.CsiVolumeRegistration`\"\u003e`nomad.CsiVolumeRegistration`\u003c/span\u003e instead.\n\nManages an external volume in Nomad.\n\nThis can be used to register external volumes in a Nomad cluster.\n\n\u003e **Warning:** this resource will store any sensitive values placed in\n  \u003cspan pulumi-lang-nodejs=\"`secrets`\" pulumi-lang-dotnet=\"`Secrets`\" pulumi-lang-go=\"`secrets`\" pulumi-lang-python=\"`secrets`\" pulumi-lang-yaml=\"`secrets`\" pulumi-lang-java=\"`secrets`\"\u003e`secrets`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mountOptions`\" pulumi-lang-dotnet=\"`MountOptions`\" pulumi-lang-go=\"`mountOptions`\" pulumi-lang-python=\"`mount_options`\" pulumi-lang-yaml=\"`mountOptions`\" pulumi-lang-java=\"`mountOptions`\"\u003e`mountOptions`\u003c/span\u003e in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n## Example Usage\n\nRegistering a volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\n// It can sometimes be helpful to wait for a particular plugin to be available\nconst ebs = nomad.getPlugin({\n    pluginId: \"aws-ebs0\",\n    waitForHealthy: true,\n});\nconst mysqlVolume = new nomad.Volume(\"mysql_volume\", {\n    type: \"csi\",\n    pluginId: \"aws-ebs0\",\n    volumeId: \"mysql_volume\",\n    name: \"mysql_volume\",\n    externalId: hashistack.ebsTestVolumeId,\n    capabilities: [{\n        accessMode: \"single-node-writer\",\n        attachmentMode: \"file-system\",\n    }],\n    mountOptions: {\n        fsType: \"ext4\",\n    },\n    topologyRequest: {\n        required: {\n            topologies: [\n                {\n                    segments: {\n                        rack: \"R1\",\n                        zone: \"us-east-1a\",\n                    },\n                },\n                {\n                    segments: {\n                        rack: \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n}, {\n    dependsOn: [ebs],\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\n# It can sometimes be helpful to wait for a particular plugin to be available\nebs = nomad.get_plugin(plugin_id=\"aws-ebs0\",\n    wait_for_healthy=True)\nmysql_volume = nomad.Volume(\"mysql_volume\",\n    type=\"csi\",\n    plugin_id=\"aws-ebs0\",\n    volume_id=\"mysql_volume\",\n    name=\"mysql_volume\",\n    external_id=hashistack[\"ebsTestVolumeId\"],\n    capabilities=[{\n        \"access_mode\": \"single-node-writer\",\n        \"attachment_mode\": \"file-system\",\n    }],\n    mount_options={\n        \"fs_type\": \"ext4\",\n    },\n    topology_request={\n        \"required\": {\n            \"topologies\": [\n                {\n                    \"segments\": {\n                        \"rack\": \"R1\",\n                        \"zone\": \"us-east-1a\",\n                    },\n                },\n                {\n                    \"segments\": {\n                        \"rack\": \"R2\",\n                    },\n                },\n            ],\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ebs]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // It can sometimes be helpful to wait for a particular plugin to be available\n    var ebs = Nomad.Index.GetPlugin.Invoke(new()\n    {\n        PluginId = \"aws-ebs0\",\n        WaitForHealthy = true,\n    });\n\n    var mysqlVolume = new Nomad.Index.Volume(\"mysql_volume\", new()\n    {\n        Type = \"csi\",\n        PluginId = \"aws-ebs0\",\n        VolumeId = \"mysql_volume\",\n        Name = \"mysql_volume\",\n        ExternalId = hashistack.EbsTestVolumeId,\n        Capabilities = new[]\n        {\n            new Nomad.Inputs.VolumeCapabilityArgs\n            {\n                AccessMode = \"single-node-writer\",\n                AttachmentMode = \"file-system\",\n            },\n        },\n        MountOptions = new Nomad.Inputs.VolumeMountOptionsArgs\n        {\n            FsType = \"ext4\",\n        },\n        TopologyRequest = new Nomad.Inputs.VolumeTopologyRequestArgs\n        {\n            Required = new Nomad.Inputs.VolumeTopologyRequestRequiredArgs\n            {\n                Topologies = new[]\n                {\n                    new Nomad.Inputs.VolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R1\" },\n                            { \"zone\", \"us-east-1a\" },\n                        },\n                    },\n                    new Nomad.Inputs.VolumeTopologyRequestRequiredTopologyArgs\n                    {\n                        Segments = \n                        {\n                            { \"rack\", \"R2\" },\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            ebs,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// It can sometimes be helpful to wait for a particular plugin to be available\n\t\tebs, err := nomad.GetPlugin(ctx, \u0026nomad.GetPluginArgs{\n\t\t\tPluginId:       \"aws-ebs0\",\n\t\t\tWaitForHealthy: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nomad.NewVolume(ctx, \"mysql_volume\", \u0026nomad.VolumeArgs{\n\t\t\tType:       pulumi.String(\"csi\"),\n\t\t\tPluginId:   pulumi.String(\"aws-ebs0\"),\n\t\t\tVolumeId:   pulumi.String(\"mysql_volume\"),\n\t\t\tName:       pulumi.String(\"mysql_volume\"),\n\t\t\tExternalId: pulumi.Any(hashistack.EbsTestVolumeId),\n\t\t\tCapabilities: nomad.VolumeCapabilityArray{\n\t\t\t\t\u0026nomad.VolumeCapabilityArgs{\n\t\t\t\t\tAccessMode:     pulumi.String(\"single-node-writer\"),\n\t\t\t\t\tAttachmentMode: pulumi.String(\"file-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMountOptions: \u0026nomad.VolumeMountOptionsArgs{\n\t\t\t\tFsType: pulumi.String(\"ext4\"),\n\t\t\t},\n\t\t\tTopologyRequest: \u0026nomad.VolumeTopologyRequestArgs{\n\t\t\t\tRequired: \u0026nomad.VolumeTopologyRequestRequiredArgs{\n\t\t\t\t\tTopologies: nomad.VolumeTopologyRequestRequiredTopologyArray{\n\t\t\t\t\t\t\u0026nomad.VolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R1\"),\n\t\t\t\t\t\t\t\t\"zone\": pulumi.String(\"us-east-1a\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026nomad.VolumeTopologyRequestRequiredTopologyArgs{\n\t\t\t\t\t\t\tSegments: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rack\": pulumi.String(\"R2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tebs,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginArgs;\nimport com.pulumi.nomad.Volume;\nimport com.pulumi.nomad.VolumeArgs;\nimport com.pulumi.nomad.inputs.VolumeCapabilityArgs;\nimport com.pulumi.nomad.inputs.VolumeMountOptionsArgs;\nimport com.pulumi.nomad.inputs.VolumeTopologyRequestArgs;\nimport com.pulumi.nomad.inputs.VolumeTopologyRequestRequiredArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // It can sometimes be helpful to wait for a particular plugin to be available\n        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .waitForHealthy(true)\n            .build());\n\n        var mysqlVolume = new Volume(\"mysqlVolume\", VolumeArgs.builder()\n            .type(\"csi\")\n            .pluginId(\"aws-ebs0\")\n            .volumeId(\"mysql_volume\")\n            .name(\"mysql_volume\")\n            .externalId(hashistack.ebsTestVolumeId())\n            .capabilities(VolumeCapabilityArgs.builder()\n                .accessMode(\"single-node-writer\")\n                .attachmentMode(\"file-system\")\n                .build())\n            .mountOptions(VolumeMountOptionsArgs.builder()\n                .fsType(\"ext4\")\n                .build())\n            .topologyRequest(VolumeTopologyRequestArgs.builder()\n                .required(VolumeTopologyRequestRequiredArgs.builder()\n                    .topologies(                    \n                        VolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.ofEntries(\n                                Map.entry(\"rack\", \"R1\"),\n                                Map.entry(\"zone\", \"us-east-1a\")\n                            ))\n                            .build(),\n                        VolumeTopologyRequestRequiredTopologyArgs.builder()\n                            .segments(Map.of(\"rack\", \"R2\"))\n                            .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(ebs)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mysqlVolume:\n    type: nomad:Volume\n    name: mysql_volume\n    properties:\n      type: csi\n      pluginId: aws-ebs0\n      volumeId: mysql_volume\n      name: mysql_volume\n      externalId: ${hashistack.ebsTestVolumeId}\n      capabilities:\n        - accessMode: single-node-writer\n          attachmentMode: file-system\n      mountOptions:\n        fsType: ext4\n      topologyRequest:\n        required:\n          topologies:\n            - segments:\n                rack: R1\n                zone: us-east-1a\n            - segments:\n                rack: R2\n    options:\n      dependsOn:\n        - ${ebs}\nvariables:\n  # It can sometimes be helpful to wait for a particular plugin to be available\n  ebs:\n    fn::invoke:\n      function: nomad:getPlugin\n      arguments:\n        pluginId: aws-ebs0\n        waitForHealthy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "properties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n",
                    "deprecationMessage": "use capability instead"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003cotional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. The storage API that will be used by the volume.\n",
                    "deprecationMessage": "use capability instead"
                },
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/VolumeCapability:VolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "context": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                },
                "controllerRequired": {
                    "type": "boolean"
                },
                "controllersExpected": {
                    "type": "integer"
                },
                "controllersHealthy": {
                    "type": "integer"
                },
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n"
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/VolumeMountOptions:VolumeMountOptions",
                    "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n"
                },
                "nodesExpected": {
                    "type": "integer"
                },
                "nodesHealthy": {
                    "type": "integer"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n"
                },
                "pluginProvider": {
                    "type": "string"
                },
                "pluginProviderVersion": {
                    "type": "string"
                },
                "schedulable": {
                    "type": "boolean"
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "topologies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/VolumeTopology:VolumeTopology"
                    }
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/VolumeTopologyRequest:VolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n"
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n"
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n"
                }
            },
            "required": [
                "controllerRequired",
                "controllersExpected",
                "controllersHealthy",
                "externalId",
                "name",
                "nodesExpected",
                "nodesHealthy",
                "pluginId",
                "pluginProvider",
                "pluginProviderVersion",
                "schedulable",
                "topologies",
                "volumeId"
            ],
            "inputProperties": {
                "accessMode": {
                    "type": "string",
                    "description": "`(string: \u003coptional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n",
                    "deprecationMessage": "use capability instead"
                },
                "attachmentMode": {
                    "type": "string",
                    "description": "`(string: \u003cotional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. The storage API that will be used by the volume.\n",
                    "deprecationMessage": "use capability instead"
                },
                "capabilities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/nomad:index/VolumeCapability:VolumeCapability"
                    },
                    "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                },
                "context": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                },
                "deregisterOnDestroy": {
                    "type": "boolean",
                    "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                },
                "externalId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n",
                    "willReplaceOnChanges": true
                },
                "mountOptions": {
                    "$ref": "#/types/nomad:index/VolumeMountOptions:VolumeMountOptions",
                    "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                },
                "name": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                },
                "namespace": {
                    "type": "string",
                    "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                    "willReplaceOnChanges": true
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                },
                "pluginId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                    "willReplaceOnChanges": true
                },
                "secrets": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                    "secret": true
                },
                "topologyRequest": {
                    "$ref": "#/types/nomad:index/VolumeTopologyRequest:VolumeTopologyRequest",
                    "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n",
                    "willReplaceOnChanges": true
                },
                "volumeId": {
                    "type": "string",
                    "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "externalId",
                "pluginId",
                "volumeId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Volume resources.\n",
                "properties": {
                    "accessMode": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. Defines whether a volume should be available concurrently. Possible values are:\n- `single-node-reader-only`\n- `single-node-writer`\n- `multi-node-reader-only`\n- `multi-node-single-writer`\n- `multi-node-multi-writer`\n",
                        "deprecationMessage": "use capability instead"
                    },
                    "attachmentMode": {
                        "type": "string",
                        "description": "`(string: \u003cotional\u003e)` - **Deprecated**. Use \u003cspan pulumi-lang-nodejs=\"`capability`\" pulumi-lang-dotnet=\"`Capability`\" pulumi-lang-go=\"`capability`\" pulumi-lang-python=\"`capability`\" pulumi-lang-yaml=\"`capability`\" pulumi-lang-java=\"`capability`\"\u003e`capability`\u003c/span\u003e block instead. The storage API that will be used by the volume.\n",
                        "deprecationMessage": "use capability instead"
                    },
                    "capabilities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/VolumeCapability:VolumeCapability"
                        },
                        "description": "`(``Capability``: \u003crequired\u003e)` - Options for validating the capability of a volume.\n"
                    },
                    "context": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to validate the volume.\n"
                    },
                    "controllerRequired": {
                        "type": "boolean"
                    },
                    "controllersExpected": {
                        "type": "integer"
                    },
                    "controllersHealthy": {
                        "type": "integer"
                    },
                    "deregisterOnDestroy": {
                        "type": "boolean",
                        "description": "`(boolean: true)` - If true, the volume will be deregistered on destroy.\n"
                    },
                    "externalId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the physical volume from the storage provider.\n",
                        "willReplaceOnChanges": true
                    },
                    "mountOptions": {
                        "$ref": "#/types/nomad:index/VolumeMountOptions:VolumeMountOptions",
                        "description": "`(block: \u003coptional\u003e)` Options for mounting `block-device` volumes without a pre-formatted file system.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The display name for the volume.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namespace in which to register the volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "nodesExpected": {
                        "type": "integer"
                    },
                    "nodesHealthy": {
                        "type": "integer"
                    },
                    "parameters": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings passed directly to the CSI plugin to configure the volume.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the Nomad plugin for registering this volume.\n",
                        "willReplaceOnChanges": true
                    },
                    "pluginProvider": {
                        "type": "string"
                    },
                    "pluginProviderVersion": {
                        "type": "string"
                    },
                    "schedulable": {
                        "type": "boolean"
                    },
                    "secrets": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string: \u003coptional\u003e)` - An optional key-value map of strings used as credentials for publishing and unpublishing volumes.\n",
                        "secret": true
                    },
                    "topologies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/nomad:index/VolumeTopology:VolumeTopology"
                        }
                    },
                    "topologyRequest": {
                        "$ref": "#/types/nomad:index/VolumeTopologyRequest:VolumeTopologyRequest",
                        "description": "`(``TopologyRequest``: \u003coptional\u003e)` - Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.\n",
                        "willReplaceOnChanges": true
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The type of the volume. Currently, only \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e is supported.\n",
                        "willReplaceOnChanges": true
                    },
                    "volumeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The unique ID of the volume.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        }
    },
    "functions": {
        "nomad:index/getAclPolicies:getAclPolicies": {
            "description": "Retrieve a list of ACL Policies.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getAclPolicies({\n    prefix: \"prod\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_acl_policies(prefix=\"prod\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetAclPolicies.Invoke(new()\n    {\n        Prefix = \"prod\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclPolicies(ctx, \u0026nomad.GetAclPoliciesArgs{\n\t\t\tPrefix: pulumi.StringRef(\"prod\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getAclPolicies(GetAclPoliciesArgs.builder()\n            .prefix(\"prod\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getAclPolicies\n      arguments:\n        prefix: prod\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclPolicies.\n",
                "properties": {
                    "prefix": {
                        "type": "string",
                        "description": "`(string)` An optional string to filter ACL policies based on name prefix. If not provided, all policies are returned.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAclPolicies.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "policies": {
                        "description": "`list of maps` a list of ACL policies.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getAclPoliciesPolicy:getAclPoliciesPolicy"
                        },
                        "type": "array"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "policies",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAclPolicy:getAclPolicy": {
            "description": "Retrieve information on an ACL Policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myPolicy = nomad.getAclPolicy({\n    name: \"my-policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_policy = nomad.get_acl_policy(name=\"my-policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myPolicy = Nomad.Index.GetAclPolicy.Invoke(new()\n    {\n        Name = \"my-policy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclPolicy(ctx, \u0026nomad.LookupAclPolicyArgs{\n\t\t\tName: \"my-policy\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myPolicy = NomadFunctions.getAclPolicy(GetAclPolicyArgs.builder()\n            .name(\"my-policy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myPolicy:\n    fn::invoke:\n      function: nomad:getAclPolicy\n      arguments:\n        name: my-policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclPolicy.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "`(string)` - the name of the ACL Policy.\n"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getAclPolicy.\n",
                "properties": {
                    "description": {
                        "description": "`(string)` - the description of the ACL Policy.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "`(string)` - the name of the ACL Policy.\n",
                        "type": "string"
                    },
                    "rules": {
                        "description": "`(string)` - the ACL Policy rules in HCL format.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "description",
                    "name",
                    "rules",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAclRole:getAclRole": {
            "description": "Get information on an ACL Role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getAclRole({\n    id: \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_acl_role(id=\"aa534e09-6a07-0a45-2295-a7f77063d429\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetAclRole.Invoke(new()\n    {\n        Id = \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclRole(ctx, \u0026nomad.LookupAclRoleArgs{\n\t\t\tId: \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getAclRole(GetAclRoleArgs.builder()\n            .id(\"aa534e09-6a07-0a45-2295-a7f77063d429\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getAclRole\n      arguments:\n        id: aa534e09-6a07-0a45-2295-a7f77063d429\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclRole.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "`(string)` The unique identifier of the ACL Role.\n"
                    }
                },
                "type": "object",
                "required": [
                    "id"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getAclRole.\n",
                "properties": {
                    "description": {
                        "description": "`(string)` - The description of the ACL Role.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "`(string)` - The ACL Role unique identifier.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "`(string)` - Unique name of the ACL role.\n",
                        "type": "string"
                    },
                    "policies": {
                        "description": "`(set)` - The policies applied to the role.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getAclRolePolicy:getAclRolePolicy"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "description",
                    "id",
                    "name",
                    "policies"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAclRoles:getAclRoles": {
            "description": "Retrieve a list of ACL Roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getAclRoles({\n    prefix: \"a242\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_acl_roles(prefix=\"a242\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetAclRoles.Invoke(new()\n    {\n        Prefix = \"a242\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclRoles(ctx, \u0026nomad.GetAclRolesArgs{\n\t\t\tPrefix: pulumi.StringRef(\"a242\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclRolesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getAclRoles(GetAclRolesArgs.builder()\n            .prefix(\"a242\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getAclRoles\n      arguments:\n        prefix: a242\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclRoles.\n",
                "properties": {
                    "prefix": {
                        "type": "string",
                        "description": "`(string)` An optional string to filter ACL Roles based on ID\nprefix. If not provided, all policies are returned.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAclRoles.\n",
                "properties": {
                    "aclRoles": {
                        "items": {
                            "$ref": "#/types/nomad:index/getAclRolesAclRole:getAclRolesAclRole"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "aclRoles",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAclToken:getAclToken": {
            "description": "Get information on an ACL token.\n\n\u003e **Warning:** this data source will store tokens in the Terraform state. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n\u003e **Note:** This data source is deprecated and may be removed in a future\nrelease. Use the \u003cspan pulumi-lang-nodejs=\"`nomad.AclToken`\" pulumi-lang-dotnet=\"`nomad.AclToken`\" pulumi-lang-go=\"`AclToken`\" pulumi-lang-python=\"`AclToken`\" pulumi-lang-yaml=\"`nomad.AclToken`\" pulumi-lang-java=\"`nomad.AclToken`\"\u003e`nomad.AclToken`\u003c/span\u003e ephemeral resource when the token secret is\nneeded during a run without storing it in Terraform state.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myToken = nomad.getAclToken({\n    accessorId: \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_token = nomad.get_acl_token(accessor_id=\"aa534e09-6a07-0a45-2295-a7f77063d429\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myToken = Nomad.Index.GetAclToken.Invoke(new()\n    {\n        AccessorId = \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclToken(ctx, \u0026nomad.LookupAclTokenArgs{\n\t\t\tAccessorId: \"aa534e09-6a07-0a45-2295-a7f77063d429\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myToken = NomadFunctions.getAclToken(GetAclTokenArgs.builder()\n            .accessorId(\"aa534e09-6a07-0a45-2295-a7f77063d429\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myToken:\n    fn::invoke:\n      function: nomad:getAclToken\n      arguments:\n        accessorId: aa534e09-6a07-0a45-2295-a7f77063d429\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclToken.\n",
                "properties": {
                    "accessorId": {
                        "type": "string",
                        "description": "`(string)` Non-sensitive identifier for this token.\n"
                    }
                },
                "type": "object",
                "required": [
                    "accessorId"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getAclToken.\n",
                "properties": {
                    "accessorId": {
                        "description": "`(string)` Non-sensitive identifier for this token.\n",
                        "type": "string"
                    },
                    "createTime": {
                        "description": "`(string)` Date and time the token was created.\n",
                        "type": "string"
                    },
                    "expirationTime": {
                        "description": "`(string)` - The timestamp after which the token is\nconsidered expired and eligible for destruction.\n",
                        "type": "string"
                    },
                    "expirationTtl": {
                        "description": "`(string)` The expiration TTL for the token.\n",
                        "type": "string"
                    },
                    "global": {
                        "description": "`(bool)` Whether the token is replicated to all regions, or if it \nwill only be used in the region it was created.\n",
                        "type": "boolean"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "name": {
                        "description": "`(string)` Non-sensitive identifier for this token.\n",
                        "type": "string"
                    },
                    "policies": {
                        "description": "`(list of strings)` List of policy names associated with this token.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "roles": {
                        "description": "`(set: [])` - The list of roles attached to the token. Each entry has\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e attributes.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getAclTokenRole:getAclTokenRole"
                        },
                        "type": "array"
                    },
                    "secretId": {
                        "description": "`(string)` The token value itself.\n",
                        "secret": true,
                        "type": "string"
                    },
                    "type": {
                        "description": "`(string)` The type of the token.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "accessorId",
                    "createTime",
                    "expirationTime",
                    "expirationTtl",
                    "global",
                    "name",
                    "policies",
                    "roles",
                    "secretId",
                    "type",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAclTokens:getAclTokens": {
            "description": "Get a list of ACL tokens.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst tokens = nomad.getAclTokens({\n    prefix: \"a242\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ntokens = nomad.get_acl_tokens(prefix=\"a242\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tokens = Nomad.Index.GetAclTokens.Invoke(new()\n    {\n        Prefix = \"a242\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAclTokens(ctx, \u0026nomad.GetAclTokensArgs{\n\t\t\tPrefix: pulumi.StringRef(\"a242\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAclTokensArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var tokens = NomadFunctions.getAclTokens(GetAclTokensArgs.builder()\n            .prefix(\"a242\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  tokens:\n    fn::invoke:\n      function: nomad:getAclTokens\n      arguments:\n        prefix: a242\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAclTokens.\n",
                "properties": {
                    "prefix": {
                        "type": "string",
                        "description": "`(string)` Optional prefix to filter the tokens.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAclTokens.\n",
                "properties": {
                    "aclTokens": {
                        "description": "`(list of objects)` The list of tokens found in the given prefix.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getAclTokensAclToken:getAclTokensAclToken"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "aclTokens",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getAllocations:getAllocations": {
            "description": "Retrieve a list of allocations from Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getAllocations({\n    filter: \"JobID == \\\"example\\\"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_allocations(filter=\"JobID == \\\"example\\\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetAllocations.Invoke(new()\n    {\n        Filter = \"JobID == \\\"example\\\"\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetAllocations(ctx, \u0026nomad.GetAllocationsArgs{\n\t\t\tFilter: pulumi.StringRef(\"JobID == \\\"example\\\"\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetAllocationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getAllocations(GetAllocationsArgs.builder()\n            .filter(\"JobID == \\\"example\\\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getAllocations\n      arguments:\n        filter: JobID == \"example\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getAllocations.\n",
                "properties": {
                    "filter": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Specifies the\n[expression]\u003cspan pulumi-lang-nodejs=\"[nomadApiFilter]\" pulumi-lang-dotnet=\"[NomadApiFilter]\" pulumi-lang-go=\"[nomadApiFilter]\" pulumi-lang-python=\"[nomad_api_filter]\" pulumi-lang-yaml=\"[nomadApiFilter]\" pulumi-lang-java=\"[nomadApiFilter]\"\u003e[nomadApiFilter]\u003c/span\u003e used to filter the results.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Specifies the namespace to search for\nallocations in.\n"
                    },
                    "prefix": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Specifies a string to filter allocations\nbased on an ID prefix.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getAllocations.\n",
                "properties": {
                    "allocations": {
                        "description": "`(list of allocations)` - A list of allocations matching the\nsearch criteria.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getAllocationsAllocation:getAllocationsAllocation"
                        },
                        "type": "array"
                    },
                    "filter": {
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "namespace": {
                        "description": "`(string)` - The namespace the allocation belongs to.\n",
                        "type": "string"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "allocations",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getDatacenters:getDatacenters": {
            "description": "Retrieve a list of datacenters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst datacenters = nomad.getDatacenters({\n    prefix: \"prod\",\n    ignoreDownNodes: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndatacenters = nomad.get_datacenters(prefix=\"prod\",\n    ignore_down_nodes=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var datacenters = Nomad.Index.GetDatacenters.Invoke(new()\n    {\n        Prefix = \"prod\",\n        IgnoreDownNodes = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetDatacenters(ctx, \u0026nomad.GetDatacentersArgs{\n\t\t\tPrefix:          pulumi.StringRef(\"prod\"),\n\t\t\tIgnoreDownNodes: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetDatacentersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var datacenters = NomadFunctions.getDatacenters(GetDatacentersArgs.builder()\n            .prefix(\"prod\")\n            .ignoreDownNodes(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  datacenters:\n    fn::invoke:\n      function: nomad:getDatacenters\n      arguments:\n        prefix: prod\n        ignoreDownNodes: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getDatacenters.\n",
                "properties": {
                    "ignoreDownNodes": {
                        "type": "boolean",
                        "description": "`(bool: false)`: An optional flag that, if set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e will ignore down nodes when compiling the list of datacenters.\n"
                    },
                    "prefix": {
                        "type": "string",
                        "description": "`(string)`: An optional string to filter datacenters based on name prefix. If not provided, all datacenters are returned.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getDatacenters.\n",
                "properties": {
                    "datacenters": {
                        "description": "`list(string)` a list of datacenters.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "ignoreDownNodes": {
                        "type": "boolean"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "datacenters",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getDeployments:getDeployments": {
            "description": "Retrieve a list of deployments in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getDeployments({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_deployments()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetDeployments.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetDeployments(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getDeployments(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getDeployments\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "outputs": {
                "description": "A collection of values returned by getDeployments.\n",
                "properties": {
                    "deployments": {
                        "description": "`list of maps` a list of deployments in the cluster.\n* `ID`: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Deployment ID.\n* `JobID`: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Job ID associated with the deployment.\n* `JobVersion`: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Job version.\n* `Status`: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Deployment status.\n* `StatusDescription`: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Detailed description of the deployment's status.\n",
                        "items": {
                            "additionalProperties": {
                                "type": "string"
                            },
                            "type": "object"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    }
                },
                "required": [
                    "deployments",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getDynamicHostVolume:getDynamicHostVolume": {
            "description": "Get information on a dynamic host volume from Nomad.\n\n## Example Usage\n\nCheck for the existing of a host volume:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getDynamicHostVolume({\n    namespace: \"prod\",\n    id: \"d688ff7a-d299-11ef-ae3c-6f2400953c18\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_dynamic_host_volume(namespace=\"prod\",\n    id=\"d688ff7a-d299-11ef-ae3c-6f2400953c18\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetDynamicHostVolume.Invoke(new()\n    {\n        Namespace = \"prod\",\n        Id = \"d688ff7a-d299-11ef-ae3c-6f2400953c18\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetDynamicHostVolume(ctx, \u0026nomad.LookupDynamicHostVolumeArgs{\n\t\t\tNamespace: pulumi.StringRef(\"prod\"),\n\t\t\tId:        \"d688ff7a-d299-11ef-ae3c-6f2400953c18\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetDynamicHostVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getDynamicHostVolume(GetDynamicHostVolumeArgs.builder()\n            .namespace(\"prod\")\n            .id(\"d688ff7a-d299-11ef-ae3c-6f2400953c18\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getDynamicHostVolume\n      arguments:\n        namespace: prod\n        id: d688ff7a-d299-11ef-ae3c-6f2400953c18\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThis will check for a dynamic host volume with the ID\n`d688ff7a-d299-11ef-ae3c-6f2400953c18`.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getDynamicHostVolume.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "`(string)` - the ID of the volume\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string)` - the namespace of the volume. Defaults to `\"default\"`\n"
                    }
                },
                "type": "object",
                "required": [
                    "id"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getDynamicHostVolume.\n",
                "properties": {
                    "capabilities": {
                        "description": "`(block)` - Option for validating the capability of a\nvolume. Each capability block has the following attributes:\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getDynamicHostVolumeCapability:getDynamicHostVolumeCapability"
                        },
                        "type": "array"
                    },
                    "capacity": {
                        "description": "`(string)` - The size of the volume, in human-friendly format\n(ex. 10 GiB)\n",
                        "type": "string"
                    },
                    "capacityBytes": {
                        "description": "`(int)` - The size of the volume, in bytes.\n",
                        "type": "integer"
                    },
                    "capacityMax": {
                        "description": "`(string)` - The requested maximum capacity of the volume, in\nhuman-friendly format (ex. 10 GiB).\n",
                        "type": "string"
                    },
                    "capacityMaxBytes": {
                        "description": "`(string)` - The requested maximum capacity of the\nvolume, in bytes.\n",
                        "type": "integer"
                    },
                    "capacityMin": {
                        "description": "`(string)` - The requested minimum capacity of the volume, in\nhuman-friendly format (ex. 10 GiB).\n",
                        "type": "string"
                    },
                    "capacityMinBytes": {
                        "description": "`(string)` - The requested minimum capacity of the\nvolume, in bytes.\n",
                        "type": "integer"
                    },
                    "constraints": {
                        "description": "`(block)` - The restrictions used to place the volume on a node,\nsimilar to the [\u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e][] block on a Nomad job specification. A volume\nmay have multiple \u003cspan pulumi-lang-nodejs=\"`constraint`\" pulumi-lang-dotnet=\"`Constraint`\" pulumi-lang-go=\"`constraint`\" pulumi-lang-python=\"`constraint`\" pulumi-lang-yaml=\"`constraint`\" pulumi-lang-java=\"`constraint`\"\u003e`constraint`\u003c/span\u003e blocks. Each constraint block has the following\nattributes.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getDynamicHostVolumeConstraint:getDynamicHostVolumeConstraint"
                        },
                        "type": "array"
                    },
                    "hostPath": {
                        "description": "`(string)` - The path on disk where the volume exists.\n",
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "description": "`(string)` - The name of the volume, which is used as the\n[`volume.source`]\u003cspan pulumi-lang-nodejs=\"[volumeSource]\" pulumi-lang-dotnet=\"[VolumeSource]\" pulumi-lang-go=\"[volumeSource]\" pulumi-lang-python=\"[volume_source]\" pulumi-lang-yaml=\"[volumeSource]\" pulumi-lang-java=\"[volumeSource]\"\u003e[volumeSource]\u003c/span\u003e field in job specifications that claim this\nvolume. Host volume names are be unique per node. Names are visible to any\nuser with `node:read` ACL, even across namespaces, so they should not be\ntreated as sensitive values.\n",
                        "type": "string"
                    },
                    "namespace": {
                        "description": "`(string)` - The namespace of the volume.\n",
                        "type": "string"
                    },
                    "nodeId": {
                        "description": "`(string)` - A specific node where the volume is mounted.\n",
                        "type": "string"
                    },
                    "nodePool": {
                        "description": "`(string: \u003coptional\u003e)` - The node pool of the node where the\nvolume is mounted.\n",
                        "type": "string"
                    },
                    "parameters": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map\u003cstring|string\u003e)` - A key-value map of strings\npassed directly to the plugin to configure the volume. The details of these\nparameters are specific to the plugin.\n",
                        "type": "object"
                    },
                    "pluginId": {
                        "description": "`(string: \u003crequired\u003e)` - The ID of the [dynamic host volume\nplugin]\u003cspan pulumi-lang-nodejs=\"[dhvPlugin]\" pulumi-lang-dotnet=\"[DhvPlugin]\" pulumi-lang-go=\"[dhvPlugin]\" pulumi-lang-python=\"[dhv_plugin]\" pulumi-lang-yaml=\"[dhvPlugin]\" pulumi-lang-java=\"[dhvPlugin]\"\u003e[dhvPlugin]\u003c/span\u003e that manages this volume.\n",
                        "type": "string"
                    },
                    "state": {
                        "type": "string"
                    }
                },
                "required": [
                    "capabilities",
                    "capacity",
                    "capacityBytes",
                    "capacityMax",
                    "capacityMaxBytes",
                    "capacityMin",
                    "capacityMinBytes",
                    "constraints",
                    "hostPath",
                    "id",
                    "name",
                    "nodeId",
                    "nodePool",
                    "parameters",
                    "pluginId",
                    "state"
                ],
                "type": "object"
            }
        },
        "nomad:index/getJob:getJob": {
            "description": "Get information on a job ID. The aim of this datasource is to enable\nyou to act on various settings and states of a particular job.\n\nAn error is triggered if zero or more than one result is returned by the query.\n\n## Example Usage\n\nGet the data about a snapshot:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getJob({\n    jobId: \"example\",\n    namespace: \"dev\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_job(job_id=\"example\",\n    namespace=\"dev\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetJob.Invoke(new()\n    {\n        JobId = \"example\",\n        Namespace = \"dev\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetJob(ctx, \u0026nomad.LookupJobArgs{\n\t\t\tJobId:     \"example\",\n\t\t\tNamespace: pulumi.StringRef(\"dev\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getJob(GetJobArgs.builder()\n            .jobId(\"example\")\n            .namespace(\"dev\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getJob\n      arguments:\n        jobId: example\n        namespace: dev\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getJob.\n",
                "properties": {
                    "jobId": {
                        "type": "string",
                        "description": "`(string)` ID of the job.\n"
                    },
                    "namespace": {
                        "type": "string",
                        "description": "`(string)` Namespace of the specified job.\n"
                    }
                },
                "type": "object",
                "required": [
                    "jobId"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getJob.\n",
                "properties": {
                    "allAtOnce": {
                        "description": "`(boolean)`  If the scheduler can make partial placements on oversubscribed nodes.\n",
                        "type": "boolean"
                    },
                    "constraints": {
                        "description": "`(list of maps)` Job constraints.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getJobConstraint:getJobConstraint"
                        },
                        "type": "array"
                    },
                    "createIndex": {
                        "description": "`(integer)` Creation Index.\n",
                        "type": "integer"
                    },
                    "datacenters": {
                        "description": "`(list of strings)` Datacenters allowed to run the specified job.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "jobId": {
                        "type": "string"
                    },
                    "jobModifyIndex": {
                        "description": "`(integer)` Job modify index (used for version verification).\n",
                        "type": "integer"
                    },
                    "modifyIndex": {
                        "description": "`(integer)` Modification Index.\n",
                        "type": "integer"
                    },
                    "name": {
                        "description": "`(string)` Volume name.\n",
                        "type": "string"
                    },
                    "namespace": {
                        "type": "string"
                    },
                    "parentId": {
                        "description": "`(string)` Job's parent ID.\n",
                        "type": "string"
                    },
                    "periodicConfigs": {
                        "description": "`(list of maps)` Job's periodic configuration.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getJobPeriodicConfig:getJobPeriodicConfig"
                        },
                        "type": "array"
                    },
                    "priority": {
                        "description": "`(integer)` Used for the prioritization of scheduling and resource access.\n",
                        "type": "integer"
                    },
                    "region": {
                        "description": "`(string)` Region where the Nomad cluster resides.\n",
                        "type": "string"
                    },
                    "stable": {
                        "description": "`(boolean)` Job stability status.\n",
                        "type": "boolean"
                    },
                    "status": {
                        "description": "`(string)` Execution status of the specified job.\n",
                        "type": "string"
                    },
                    "statusDescription": {
                        "description": "`(string)` Status description of the specified job.\n",
                        "type": "string"
                    },
                    "stop": {
                        "description": "`(boolean)` Job enabled status.\n",
                        "type": "boolean"
                    },
                    "submitTime": {
                        "description": "`(integer)` Job submission date.\n",
                        "type": "string"
                    },
                    "taskGroups": {
                        "description": "`(list of maps)` A list of the job's task groups.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getJobTaskGroup:getJobTaskGroup"
                        },
                        "type": "array"
                    },
                    "type": {
                        "description": "`(string)` Volume type.\n",
                        "type": "string"
                    },
                    "updateStrategies": {
                        "description": "`(list of maps)` Job-level update strategy returned by Nomad.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getJobUpdateStrategy:getJobUpdateStrategy"
                        },
                        "type": "array"
                    },
                    "version": {
                        "description": "`(integer)` Version of the specified job.\n",
                        "type": "integer"
                    }
                },
                "required": [
                    "allAtOnce",
                    "constraints",
                    "createIndex",
                    "datacenters",
                    "jobId",
                    "jobModifyIndex",
                    "modifyIndex",
                    "name",
                    "parentId",
                    "periodicConfigs",
                    "priority",
                    "region",
                    "stable",
                    "status",
                    "statusDescription",
                    "stop",
                    "submitTime",
                    "taskGroups",
                    "type",
                    "updateStrategies",
                    "version",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getJobParser:getJobParser": {
            "description": "Parse a HCL jobspec and produce the equivalent JSON encoded job.\n\n",
            "inputs": {
                "description": "A collection of arguments for invoking getJobParser.\n",
                "properties": {
                    "canonicalize": {
                        "type": "boolean",
                        "description": "`(boolean: false)` - Flag to enable setting any unset fields to their default values.\n"
                    },
                    "hcl": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The HCL definition of the job.\n"
                    },
                    "variables": {
                        "type": "string",
                        "description": "`(string: \"\")` - HCL2 variables to pass to the job parser. Interpreted as the content of a variables file.\n"
                    }
                },
                "type": "object",
                "required": [
                    "hcl"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getJobParser.\n",
                "properties": {
                    "canonicalize": {
                        "type": "boolean"
                    },
                    "hcl": {
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "json": {
                        "description": "`(string)` - The parsed job as JSON string.\n",
                        "type": "string"
                    },
                    "variables": {
                        "type": "string"
                    }
                },
                "required": [
                    "hcl",
                    "json",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getJwks:getJwks": {
            "description": "Retrieve the cluster JWKS public keys.\n\nThe keys are returned both as a list of maps (\u003cspan pulumi-lang-nodejs=\"`keys`\" pulumi-lang-dotnet=\"`Keys`\" pulumi-lang-go=\"`keys`\" pulumi-lang-python=\"`keys`\" pulumi-lang-yaml=\"`keys`\" pulumi-lang-java=\"`keys`\"\u003e`keys`\u003c/span\u003e), and as a list of PEM-encoded strings\n(\u003cspan pulumi-lang-nodejs=\"`pemKeys`\" pulumi-lang-dotnet=\"`PemKeys`\" pulumi-lang-go=\"`pemKeys`\" pulumi-lang-python=\"`pem_keys`\" pulumi-lang-yaml=\"`pemKeys`\" pulumi-lang-java=\"`pemKeys`\"\u003e`pemKeys`\u003c/span\u003e), which may be more convenient for use.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getJwks({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_jwks()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetJwks.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetJwks(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getJwks(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getJwks\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "outputs": {
                "description": "A collection of values returned by getJwks.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "keys": {
                        "description": "`list of maps` a list of JWK keys in structured format: see [RFC7517](https://datatracker.ietf.org/doc/html/rfc7517) for the\nJWK field meanings.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getJwksKey:getJwksKey"
                        },
                        "type": "array"
                    },
                    "pemKeys": {
                        "description": "`list of strings` a list JWK keys rendered as PEM-encoded X.509 keys\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "keys",
                    "pemKeys",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNamespace:getNamespace": {
            "description": "Get information about a namespace in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst namespaces = nomad.getNamespace({\n    name: \"default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nnamespaces = nomad.get_namespace(name=\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var namespaces = Nomad.Index.GetNamespace.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNamespace(ctx, \u0026nomad.LookupNamespaceArgs{\n\t\t\tName: \"default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var namespaces = NomadFunctions.getNamespace(GetNamespaceArgs.builder()\n            .name(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  namespaces:\n    fn::invoke:\n      function: nomad:getNamespace\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNamespace.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "`(string)` - The name of the namespace.\n"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getNamespace.\n",
                "properties": {
                    "capabilities": {
                        "description": "`(block)` - Capabilities of the namespace\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNamespaceCapability:getNamespaceCapability"
                        },
                        "type": "array"
                    },
                    "consulConfigs": {
                        "description": "`(block)` - Consul configuration for the namespace.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNamespaceConsulConfig:getNamespaceConsulConfig"
                        },
                        "type": "array"
                    },
                    "description": {
                        "description": "`(string)` - The description of the namespace.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "meta": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` -  Arbitrary KV metadata associated with the namespace.\n",
                        "type": "object"
                    },
                    "name": {
                        "type": "string"
                    },
                    "nodePoolConfigs": {
                        "description": "`(block)` - Node pool configuration for the namespace.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNamespaceNodePoolConfig:getNamespaceNodePoolConfig"
                        },
                        "type": "array"
                    },
                    "quota": {
                        "description": "`(string)` - The quota associated with the namespace.\n",
                        "type": "string"
                    },
                    "vaultConfigs": {
                        "description": "`(block)` - Vault configuration for the namespace.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNamespaceVaultConfig:getNamespaceVaultConfig"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "capabilities",
                    "consulConfigs",
                    "description",
                    "meta",
                    "name",
                    "nodePoolConfigs",
                    "quota",
                    "vaultConfigs",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNamespaces:getNamespaces": {
            "description": "Retrieve a list of namespaces available in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst namespaces = nomad.getNamespaces({});\nconst namespace: nomad.AclPolicy[] = [];\nnamespaces.then(namespaces =\u003e namespaces.namespaces).length.apply(rangeBody =\u003e {\n    for (const range = {value: 0}; range.value \u003c rangeBody; range.value++) {\n        namespace.push(new nomad.AclPolicy(`namespace-${range.value}`, {\n            name: namespaces.then(namespaces =\u003e `namespace-${namespaces[range.value]}`),\n            description: namespaces.then(namespaces =\u003e `Write to the namespace ${namespaces[range.value]}`),\n            rulesHcl: namespaces.then(namespaces =\u003e `namespace \\\"${namespaces[range.value]}\\\" {\n  policy = \\\"write\\\"\n}\n`),\n        }));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nnamespaces = nomad.get_namespaces()\nnamespace = []\ndef create_namespace(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        namespace.append(nomad.AclPolicy(f\"namespace-{range['value']}\",\n            name=f\"namespace-{namespaces[range['value']]}\",\n            description=f\"Write to the namespace {namespaces[range['value']]}\",\n            rules_hcl=f\"\"\"namespace \\\"{namespaces[range[\"value\"]]}\\\" {{\n  policy = \\\"write\\\"\n}}\n\"\"\"))\n\n(len(namespaces.namespaces)).apply(create_namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var namespaces = Nomad.Index.GetNamespaces.Invoke();\n\n    var @namespace = new List\u003cNomad.Index.AclPolicy\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c namespaces.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces).Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        @namespace.Add(new Nomad.Index.AclPolicy($\"namespace-{range.Value}\", new()\n        {\n            Name = $\"namespace-{namespaces[range.Value]}\",\n            Description = $\"Write to the namespace {namespaces[range.Value]}\",\n            RulesHcl = @$\"namespace \\\"\"{namespaces[range.Value]}\\\"\" {{\n  policy = \\\"\"write\\\"\"\n}}\n\",\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnamespaces, err := nomad.GetNamespaces(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar namespace []*nomad.AclPolicy\n\t\tfor index := 0; index \u003c int(len(namespaces.Namespaces)); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := nomad.NewAclPolicy(ctx, fmt.Sprintf(\"namespace-%v\", key0), \u0026nomad.AclPolicyArgs{\n\t\t\t\tName:        pulumi.Sprintf(\"namespace-%v\", namespaces[val0]),\n\t\t\t\tDescription: pulumi.Sprintf(\"Write to the namespace %v\", namespaces[val0]),\n\t\t\t\tRulesHcl:    pulumi.Sprintf(\"namespace \\\\\\\"%v\\\\\\\" {\\n  policy = \\\\\\\"write\\\\\\\"\\n}\\n\", namespaces[val0]),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tnamespace = append(namespace, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.AclPolicy;\nimport com.pulumi.nomad.AclPolicyArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var namespaces = NomadFunctions.getNamespaces(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        for (var i = 0; i \u003c namespaces.namespaces().length(); i++) {\n            new AclPolicy(\"namespace-\" + i, AclPolicyArgs.builder()\n                .name(String.format(\"namespace-%s\", namespaces[range.value()]))\n                .description(String.format(\"Write to the namespace %s\", namespaces[range.value()]))\n                .rulesHcl(\"\"\"\nnamespace \\\"%s\\\" {\n  policy = \\\"write\\\"\n}\n\", namespaces[range.value()]))\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "outputs": {
                "description": "A collection of values returned by getNamespaces.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "namespaces": {
                        "description": "`(list of strings)` - a list of namespaces available in the cluster.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "namespaces",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNode:getNode": {
            "description": "Get information about a specific Nomad node by its ID.\n\n\u003e **Note:** All node attribute values can change if the node is restarted and\nits fingerprint changes. In particular, the \u003cspan pulumi-lang-nodejs=\"`drain`\" pulumi-lang-dotnet=\"`Drain`\" pulumi-lang-go=\"`drain`\" pulumi-lang-python=\"`drain`\" pulumi-lang-yaml=\"`drain`\" pulumi-lang-java=\"`drain`\"\u003e`drain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`statusDescription`\" pulumi-lang-dotnet=\"`StatusDescription`\" pulumi-lang-go=\"`statusDescription`\" pulumi-lang-python=\"`status_description`\" pulumi-lang-yaml=\"`statusDescription`\" pulumi-lang-java=\"`statusDescription`\"\u003e`statusDescription`\u003c/span\u003e,\nand \u003cspan pulumi-lang-nodejs=\"`schedulingEligibility`\" pulumi-lang-dotnet=\"`SchedulingEligibility`\" pulumi-lang-go=\"`schedulingEligibility`\" pulumi-lang-python=\"`scheduling_eligibility`\" pulumi-lang-yaml=\"`schedulingEligibility`\" pulumi-lang-java=\"`schedulingEligibility`\"\u003e`schedulingEligibility`\u003c/span\u003e fields are ephemeral and can change at any time\nwithout an agent restart.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst myNode = nomad.getNode({\n    nodeId: \"abc123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nmy_node = nomad.get_node(node_id=\"abc123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myNode = Nomad.Index.GetNode.Invoke(new()\n    {\n        NodeId = \"abc123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNode(ctx, \u0026nomad.GetNodeArgs{\n\t\t\tNodeId: \"abc123\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myNode = NomadFunctions.getNode(GetNodeArgs.builder()\n            .nodeId(\"abc123\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myNode:\n    fn::invoke:\n      function: nomad:getNode\n      arguments:\n        nodeId: abc123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNode.\n",
                "properties": {
                    "nodeId": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The ID of the node to look up.\n"
                    }
                },
                "type": "object",
                "required": [
                    "nodeId"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getNode.\n",
                "properties": {
                    "attributes": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map of string)` - Driver-specific attributes.\n",
                        "type": "object"
                    },
                    "datacenter": {
                        "description": "`(string)` - The datacenter of the node.\n",
                        "type": "string"
                    },
                    "drain": {
                        "description": "`(bool)` - Whether the node is in drain mode. This value is ephemeral\nand can change without an agent restart.\n",
                        "type": "boolean"
                    },
                    "drivers": {
                        "description": "`(list)` - A list of driver information for the node.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodeDriver:getNodeDriver"
                        },
                        "type": "array"
                    },
                    "hostVolumes": {
                        "description": "`(list)` - A list of host volumes on the node.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodeHostVolume:getNodeHostVolume"
                        },
                        "type": "array"
                    },
                    "httpAddr": {
                        "description": "`(string)` - The HTTP address of the node.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "meta": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map of string)` - A map of metadata for the node.\n",
                        "type": "object"
                    },
                    "name": {
                        "description": "`(string)` - The device name.\n",
                        "type": "string"
                    },
                    "nodeClass": {
                        "description": "`(string)` - The node class of the node.\n",
                        "type": "string"
                    },
                    "nodeId": {
                        "type": "string"
                    },
                    "nodePool": {
                        "description": "`(string)` - The node pool of the node.\n",
                        "type": "string"
                    },
                    "nodeResources": {
                        "description": "`(list)` - Resources available on the node.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodeNodeResource:getNodeNodeResource"
                        },
                        "type": "array"
                    },
                    "reservedResources": {
                        "description": "`(list)` - Resources reserved on the node.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodeReservedResource:getNodeReservedResource"
                        },
                        "type": "array"
                    },
                    "schedulingEligibility": {
                        "description": "`(string)` - The scheduling eligibility of the node.\nThis value is ephemeral and can change without an agent restart.\n",
                        "type": "string"
                    },
                    "status": {
                        "description": "`(string)` - The status of the node. This value is ephemeral and\ncan change without an agent restart.\n",
                        "type": "string"
                    },
                    "statusDescription": {
                        "description": "`(string)` - The status description of the node. This\nvalue is ephemeral and can change without an agent restart.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "attributes",
                    "datacenter",
                    "drain",
                    "drivers",
                    "hostVolumes",
                    "httpAddr",
                    "meta",
                    "name",
                    "nodeClass",
                    "nodeId",
                    "nodePool",
                    "nodeResources",
                    "reservedResources",
                    "schedulingEligibility",
                    "status",
                    "statusDescription",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNodePool:getNodePool": {
            "description": "Get information about a node pool in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst dev = nomad.getNodePool({\n    name: \"dev\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\ndev = nomad.get_node_pool(name=\"dev\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dev = Nomad.Index.GetNodePool.Invoke(new()\n    {\n        Name = \"dev\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNodePool(ctx, \u0026nomad.LookupNodePoolArgs{\n\t\t\tName: \"dev\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dev = NomadFunctions.getNodePool(GetNodePoolArgs.builder()\n            .name(\"dev\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dev:\n    fn::invoke:\n      function: nomad:getNodePool\n      arguments:\n        name: dev\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNodePool.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "`(string)` - The name of the node pool to fetch.\n"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getNodePool.\n",
                "properties": {
                    "description": {
                        "description": "`(string)` - The description of the node pool.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "meta": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` - Arbitrary KV metadata associated with the\nnode pool.\n",
                        "type": "object"
                    },
                    "name": {
                        "type": "string"
                    },
                    "nodeIdentityTtl": {
                        "description": "`(string)` - The TTL applied to node identities issued to\nnodes in this pool.\n",
                        "type": "string"
                    },
                    "schedulerConfigs": {
                        "description": "`(block)` - Scheduler configuration for the node pool.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodePoolSchedulerConfig:getNodePoolSchedulerConfig"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "description",
                    "meta",
                    "name",
                    "nodeIdentityTtl",
                    "schedulerConfigs",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNodePools:getNodePools": {
            "description": "Retrieve a list of node pools available in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst prod = nomad.getNodePools({\n    filter: \"Meta.env == \\\"prod\\\"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nprod = nomad.get_node_pools(filter=\"Meta.env == \\\"prod\\\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prod = Nomad.Index.GetNodePools.Invoke(new()\n    {\n        Filter = \"Meta.env == \\\"prod\\\"\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNodePools(ctx, \u0026nomad.GetNodePoolsArgs{\n\t\t\tFilter: pulumi.StringRef(\"Meta.env == \\\"prod\\\"\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodePoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var prod = NomadFunctions.getNodePools(GetNodePoolsArgs.builder()\n            .filter(\"Meta.env == \\\"prod\\\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  prod:\n    fn::invoke:\n      function: nomad:getNodePools\n      arguments:\n        filter: Meta.env == \"prod\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNodePools.\n",
                "properties": {
                    "filter": {
                        "type": "string",
                        "description": "`(string)` - Specifies the [expression]\u003cspan pulumi-lang-nodejs=\"[nomadApiFilter]\" pulumi-lang-dotnet=\"[NomadApiFilter]\" pulumi-lang-go=\"[nomadApiFilter]\" pulumi-lang-python=\"[nomad_api_filter]\" pulumi-lang-yaml=\"[nomadApiFilter]\" pulumi-lang-java=\"[nomadApiFilter]\"\u003e[nomadApiFilter]\u003c/span\u003e used to\nfilter the results.\n"
                    },
                    "prefix": {
                        "type": "string",
                        "description": "`(string)` - Specifies a string to filter node pools based on a name\nprefix.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getNodePools.\n",
                "properties": {
                    "filter": {
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "nodePools": {
                        "description": "`(list of node pools)` - A list of node pools matching the\nsearch criteria.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodePoolsNodePool:getNodePoolsNodePool"
                        },
                        "type": "array"
                    },
                    "prefix": {
                        "type": "string"
                    }
                },
                "required": [
                    "nodePools",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getNodes:getNodes": {
            "description": "Retrieve a list of nodes from Nomad.\n\n\u003e **Note:** All node attribute values can change if the node is restarted and\nits fingerprint changes. In particular, the \u003cspan pulumi-lang-nodejs=\"`drain`\" pulumi-lang-dotnet=\"`Drain`\" pulumi-lang-go=\"`drain`\" pulumi-lang-python=\"`drain`\" pulumi-lang-yaml=\"`drain`\" pulumi-lang-java=\"`drain`\"\u003e`drain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`statusDescription`\" pulumi-lang-dotnet=\"`StatusDescription`\" pulumi-lang-go=\"`statusDescription`\" pulumi-lang-python=\"`status_description`\" pulumi-lang-yaml=\"`statusDescription`\" pulumi-lang-java=\"`statusDescription`\"\u003e`statusDescription`\u003c/span\u003e,\nand \u003cspan pulumi-lang-nodejs=\"`schedulingEligibility`\" pulumi-lang-dotnet=\"`SchedulingEligibility`\" pulumi-lang-go=\"`schedulingEligibility`\" pulumi-lang-python=\"`scheduling_eligibility`\" pulumi-lang-yaml=\"`schedulingEligibility`\" pulumi-lang-java=\"`schedulingEligibility`\"\u003e`schedulingEligibility`\u003c/span\u003e fields are ephemeral and can change at any time\nwithout an agent restart.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst all = nomad.getNodes({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nall = nomad.get_nodes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = Nomad.Index.GetNodes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNodes(ctx, \u0026nomad.GetNodesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = NomadFunctions.getNodes(GetNodesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: nomad:getNodes\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filtering by status\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst ready = nomad.getNodes({\n    filter: \"Status == \\\"ready\\\"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nready = nomad.get_nodes(filter=\"Status == \\\"ready\\\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ready = Nomad.Index.GetNodes.Invoke(new()\n    {\n        Filter = \"Status == \\\"ready\\\"\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNodes(ctx, \u0026nomad.GetNodesArgs{\n\t\t\tFilter: pulumi.StringRef(\"Status == \\\"ready\\\"\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ready = NomadFunctions.getNodes(GetNodesArgs.builder()\n            .filter(\"Status == \\\"ready\\\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ready:\n    fn::invoke:\n      function: nomad:getNodes\n      arguments:\n        filter: Status == \"ready\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Including OS attributes and resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst withDetails = nomad.getNodes({\n    os: true,\n    resources: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nwith_details = nomad.get_nodes(os=True,\n    resources=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var withDetails = Nomad.Index.GetNodes.Invoke(new()\n    {\n        Os = true,\n        Resources = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetNodes(ctx, \u0026nomad.GetNodesArgs{\n\t\t\tOs:        pulumi.BoolRef(true),\n\t\t\tResources: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var withDetails = NomadFunctions.getNodes(GetNodesArgs.builder()\n            .os(true)\n            .resources(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  withDetails:\n    fn::invoke:\n      function: nomad:getNodes\n      arguments:\n        os: true\n        resources: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getNodes.\n",
                "properties": {
                    "filter": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Specifies the [expression]\u003cspan pulumi-lang-nodejs=\"[nomadApiFilter]\" pulumi-lang-dotnet=\"[NomadApiFilter]\" pulumi-lang-go=\"[nomadApiFilter]\" pulumi-lang-python=\"[nomad_api_filter]\" pulumi-lang-yaml=\"[nomadApiFilter]\" pulumi-lang-java=\"[nomadApiFilter]\"\u003e[nomadApiFilter]\u003c/span\u003e\nused to filter the results.\n"
                    },
                    "os": {
                        "type": "boolean",
                        "description": "`(bool: false)` - If true, include special attributes such as operating\nsystem name in the response. When false, the \u003cspan pulumi-lang-nodejs=\"`attributes`\" pulumi-lang-dotnet=\"`Attributes`\" pulumi-lang-go=\"`attributes`\" pulumi-lang-python=\"`attributes`\" pulumi-lang-yaml=\"`attributes`\" pulumi-lang-java=\"`attributes`\"\u003e`attributes`\u003c/span\u003e map will not contain\nOS-related attributes.\n"
                    },
                    "prefix": {
                        "type": "string",
                        "description": "`(string: \u003coptional\u003e)` - Specifies a string to filter nodes based on\nan ID prefix. Must have an even number of hexadecimal characters (0-9a-f).\n"
                    },
                    "resources": {
                        "type": "boolean",
                        "description": "`(bool: false)` - If true, include \u003cspan pulumi-lang-nodejs=\"`nodeResources`\" pulumi-lang-dotnet=\"`NodeResources`\" pulumi-lang-go=\"`nodeResources`\" pulumi-lang-python=\"`node_resources`\" pulumi-lang-yaml=\"`nodeResources`\" pulumi-lang-java=\"`nodeResources`\"\u003e`nodeResources`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`reservedResources`\" pulumi-lang-dotnet=\"`ReservedResources`\" pulumi-lang-go=\"`reservedResources`\" pulumi-lang-python=\"`reserved_resources`\" pulumi-lang-yaml=\"`reservedResources`\" pulumi-lang-java=\"`reservedResources`\"\u003e`reservedResources`\u003c/span\u003e in the response.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getNodes.\n",
                "properties": {
                    "filter": {
                        "type": "string"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "nodes": {
                        "description": "`(list of nodes)` - A list of nodes matching the search criteria.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getNodesNode:getNodesNode"
                        },
                        "type": "array"
                    },
                    "os": {
                        "type": "boolean"
                    },
                    "prefix": {
                        "type": "string"
                    },
                    "resources": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "nodes",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getPlugin:getPlugin": {
            "description": "Lookup a plugin by ID. The aim of this datasource is to determine whether\na particular plugin exists on the cluster, to find information on the health\nand availability of the plugin, and to optionally wait for the plugin\nbefore performing actions the require an available plugin controller.\n\nIf a plugin with the specified ID does not exist and the datasource is not\nconfigured to wait, it will result in an error. For simple existence checks,\nuse the \u003cspan pulumi-lang-nodejs=\"`nomad.getPlugins`\" pulumi-lang-dotnet=\"`nomad.getPlugins`\" pulumi-lang-go=\"`getPlugins`\" pulumi-lang-python=\"`get_plugins`\" pulumi-lang-yaml=\"`nomad.getPlugins`\" pulumi-lang-java=\"`nomad.getPlugins`\"\u003e`nomad.getPlugins`\u003c/span\u003e listing datasource.\n\n## Example Usage\n\nCheck for the existence of a plugin:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst ebs = nomad.getPlugin({\n    pluginId: \"aws-ebs0\",\n    waitForHealthy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nebs = nomad.get_plugin(plugin_id=\"aws-ebs0\",\n    wait_for_healthy=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ebs = Nomad.Index.GetPlugin.Invoke(new()\n    {\n        PluginId = \"aws-ebs0\",\n        WaitForHealthy = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetPlugin(ctx, \u0026nomad.GetPluginArgs{\n\t\t\tPluginId:       \"aws-ebs0\",\n\t\t\tWaitForHealthy: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()\n            .pluginId(\"aws-ebs0\")\n            .waitForHealthy(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ebs:\n    fn::invoke:\n      function: nomad:getPlugin\n      arguments:\n        pluginId: aws-ebs0\n        waitForHealthy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThis will check for a plugin with the ID `aws-ebs0`, waiting until the plugin\nis healthy before returning.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getPlugin.\n",
                "properties": {
                    "pluginId": {
                        "type": "string",
                        "description": "`(string)` ID of the plugin.\n"
                    },
                    "waitForHealthy": {
                        "type": "boolean",
                        "description": "`(boolean)` retry until the plugin exists and all controllers are healthy\n"
                    },
                    "waitForRegistration": {
                        "type": "boolean",
                        "description": "`(boolean)` if the plugin doesn't exist, retry until it does\n"
                    }
                },
                "type": "object",
                "required": [
                    "pluginId"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getPlugin.\n",
                "properties": {
                    "controllerRequired": {
                        "description": "`(boolean)` Whether a controller is required.\n",
                        "type": "boolean"
                    },
                    "controllersExpected": {
                        "description": "`(integer)` The number of registered controllers.\n",
                        "type": "integer"
                    },
                    "controllersHealthy": {
                        "description": "`(integer)` The number of healthy controllers.\n",
                        "type": "integer"
                    },
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "nodes": {
                        "items": {
                            "$ref": "#/types/nomad:index/getPluginNode:getPluginNode"
                        },
                        "type": "array"
                    },
                    "nodesExpected": {
                        "description": "`(integer)` The number of registered nodes.\n",
                        "type": "integer"
                    },
                    "nodesHealthy": {
                        "description": "`(integer)` The number of healthy nodes.\n",
                        "type": "integer"
                    },
                    "pluginId": {
                        "description": "`(string)` ID of the plugin\n",
                        "type": "string"
                    },
                    "pluginProvider": {
                        "description": "`(string)` Plugin provider name\n",
                        "type": "string"
                    },
                    "pluginProviderVersion": {
                        "description": "`(string)` Plugin provider version\n",
                        "type": "string"
                    },
                    "waitForHealthy": {
                        "type": "boolean"
                    },
                    "waitForRegistration": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "controllerRequired",
                    "controllersExpected",
                    "controllersHealthy",
                    "nodes",
                    "nodesExpected",
                    "nodesHealthy",
                    "pluginId",
                    "pluginProvider",
                    "pluginProviderVersion",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getPlugins:getPlugins": {
            "description": "Retrieve a list of dynamic plugins in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getPlugins({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_plugins()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetPlugins.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetPlugins(ctx, \u0026nomad.GetPluginsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetPluginsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getPlugins(GetPluginsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getPlugins\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getPlugins.\n",
                "properties": {
                    "type": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getPlugins.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "plugins": {
                        "description": "`(list of maps)` a list of dynamic plugins registered in the cluster.\n",
                        "items": {
                            "additionalProperties": {
                                "type": "string"
                            },
                            "type": "object"
                        },
                        "type": "array"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "required": [
                    "plugins",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getRegions:getRegions": {
            "description": "Retrieve a list of regions available in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nfunction notImplemented(message: string) {\n    throw new Error(message);\n}\n\nconst myRegions = nomad.getRegions({});\nconst jobs = notImplemented(\"The template_file data resource is not yet supported.\");\nconst app: nomad.Job[] = [];\nmyRegions.then(myRegions =\u003e myRegions.regions).length.apply(rangeBody =\u003e {\n    for (const range = {value: 0}; range.value \u003c rangeBody; range.value++) {\n        app.push(new nomad.Job(`app-${range.value}`, {jobspec: jobs[range.value].rendered}));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\n\ndef not_implemented(msg):\n    raise NotImplementedError(msg)\n\nmy_regions = nomad.get_regions()\njobs = not_implemented(\"The template_file data resource is not yet supported.\")\napp = []\ndef create_app(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        app.append(nomad.Job(f\"app-{range['value']}\", jobspec=jobs[range[\"value\"]][\"rendered\"]))\n\n(len(my_regions.regions)).apply(create_app)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\n\t\nobject NotImplemented(string errorMessage) \n{\n    throw new System.NotImplementedException(errorMessage);\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myRegions = Nomad.Index.GetRegions.Invoke();\n\n    var jobs = NotImplemented(\"The template_file data resource is not yet supported.\");\n\n    var app = new List\u003cNomad.Index.Job\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c myRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions).Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        app.Add(new Nomad.Index.Job($\"app-{range.Value}\", new()\n        {\n            Jobspec = jobs[range.Value].Rendered,\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc notImplemented(message string) pulumi.AnyOutput {\n\tpanic(message)\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyRegions, err := nomad.GetRegions(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjobs := notImplemented(\"The template_file data resource is not yet supported.\")\n\t\tvar app []*nomad.Job\n\t\tfor index := 0; index \u003c int(len(myRegions.Regions)); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := nomad.NewJob(ctx, fmt.Sprintf(\"app-%v\", key0), \u0026nomad.JobArgs{\n\t\t\t\tJobspec: jobs[val0].Rendered,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tapp = append(app, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "outputs": {
                "description": "A collection of values returned by getRegions.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "regions": {
                        "description": "`(list of strings)` - a list of regions available in the cluster.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "regions",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getScalingPolicies:getScalingPolicies": {
            "description": "Retrieve a list of Scaling Policies.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getScalingPolicies({\n    jobId: \"webapp\",\n    type: \"horizontal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_scaling_policies(job_id=\"webapp\",\n    type=\"horizontal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetScalingPolicies.Invoke(new()\n    {\n        JobId = \"webapp\",\n        Type = \"horizontal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetScalingPolicies(ctx, \u0026nomad.GetScalingPoliciesArgs{\n\t\t\tJobId: pulumi.StringRef(\"webapp\"),\n\t\t\tType:  pulumi.StringRef(\"horizontal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetScalingPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getScalingPolicies(GetScalingPoliciesArgs.builder()\n            .jobId(\"webapp\")\n            .type(\"horizontal\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getScalingPolicies\n      arguments:\n        jobId: webapp\n        type: horizontal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getScalingPolicies.\n",
                "properties": {
                    "jobId": {
                        "type": "string",
                        "description": "`(string)` - An optional string to filter scaling policies based on the target job. If not provided, policies for all jobs are returned.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string)` - An optional string to filter scaling policies based on policy type. If not provided, policies of all types are returned.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getScalingPolicies.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "jobId": {
                        "type": "string"
                    },
                    "policies": {
                        "description": "`list of maps` - A list of scaling policies.\n",
                        "items": {
                            "$ref": "#/types/nomad:index/getScalingPoliciesPolicy:getScalingPoliciesPolicy"
                        },
                        "type": "array"
                    },
                    "type": {
                        "description": "`(string)` - The scaling policy type.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "policies",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getScalingPolicy:getScalingPolicy": {
            "description": "Retrieve a Scaling Policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getScalingPolicy({\n    id: \"ad19848d-1921-179c-affa-244a3543be88\",\n});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_scaling_policy(id=\"ad19848d-1921-179c-affa-244a3543be88\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetScalingPolicy.Invoke(new()\n    {\n        Id = \"ad19848d-1921-179c-affa-244a3543be88\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetScalingPolicy(ctx, \u0026nomad.GetScalingPolicyArgs{\n\t\t\tId: \"ad19848d-1921-179c-affa-244a3543be88\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetScalingPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getScalingPolicy(GetScalingPolicyArgs.builder()\n            .id(\"ad19848d-1921-179c-affa-244a3543be88\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getScalingPolicy\n      arguments:\n        id: ad19848d-1921-179c-affa-244a3543be88\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getScalingPolicy.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "`(string: \u003crequired\u003e)` - The  ID of the scaling policy.\n"
                    }
                },
                "type": "object",
                "required": [
                    "id"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getScalingPolicy.\n",
                "properties": {
                    "enabled": {
                        "description": "`(boolean)` - Whether or not the scaling policy is enabled.\n",
                        "type": "boolean"
                    },
                    "id": {
                        "type": "string"
                    },
                    "max": {
                        "description": "`(integer)` - The maximum value set in the scaling policy.\n",
                        "type": "integer"
                    },
                    "min": {
                        "description": "`(integer)` - The minimum value set in the scaling policy.\n",
                        "type": "integer"
                    },
                    "policy": {
                        "description": "`(string)` - The policy inside the scaling policy.\n",
                        "type": "string"
                    },
                    "target": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` - The scaling policy target.\n",
                        "type": "object"
                    },
                    "type": {
                        "description": "`(string)` - The scaling policy type.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "enabled",
                    "id",
                    "max",
                    "min",
                    "policy",
                    "target",
                    "type"
                ],
                "type": "object"
            }
        },
        "nomad:index/getSchedulerPolicy:getSchedulerPolicy": {
            "description": "Retrieve the cluster's [scheduler configuration](https://www.nomadproject.io/api-docs/operator#sample-response-3).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst global = nomad.getSchedulerPolicy({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nglobal_ = nomad.get_scheduler_policy()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @global = Nomad.Index.GetSchedulerPolicy.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetSchedulerPolicy(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var global = NomadFunctions.getSchedulerPolicy(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  global:\n    fn::invoke:\n      function: nomad:getSchedulerPolicy\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "outputs": {
                "description": "A collection of values returned by getSchedulerPolicy.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "memoryOversubscriptionEnabled": {
                        "description": "`(bool: false)` - When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, tasks may exceed their reserved memory limit.\n",
                        "type": "boolean"
                    },
                    "preemptionConfig": {
                        "additionalProperties": {
                            "type": "boolean"
                        },
                        "description": "`(map[string]bool)` - Options to enable preemption for various schedulers.\n",
                        "type": "object"
                    },
                    "schedulerAlgorithm": {
                        "description": "`(string)` - Specifies whether scheduler binpacks or spreads allocations on available nodes.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "memoryOversubscriptionEnabled",
                    "preemptionConfig",
                    "schedulerAlgorithm",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getVariable:getVariable": {
            "description": "Get the information about a Nomad variable.\n\n\u003e **Deprecated:** Use the \u003cspan pulumi-lang-nodejs=\"`nomad.Variable`\" pulumi-lang-dotnet=\"`nomad.Variable`\" pulumi-lang-go=\"`Variable`\" pulumi-lang-python=\"`Variable`\" pulumi-lang-yaml=\"`nomad.Variable`\" pulumi-lang-java=\"`nomad.Variable`\"\u003e`nomad.Variable`\u003c/span\u003e ephemeral resource instead when you\nneed to read variable items without storing them in Terraform state. This data\nsource will be removed in a future release.\n\n\u003e **Warning:** this data source will store the sensitive values from \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e\n  in the Terraform's state file. Take care to\n  [protect your state file](https://www.terraform.io/docs/state/sensitive-data.html).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = new nomad.Variable(\"example\", {path: \"path/of/existing/variable\"});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.Variable(\"example\", path=\"path/of/existing/variable\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Nomad.Index.Variable(\"example\", new()\n    {\n        Path = \"path/of/existing/variable\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.NewVariable(ctx, \"example\", \u0026nomad.VariableArgs{\n\t\t\tPath: pulumi.String(\"path/of/existing/variable\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.Variable;\nimport com.pulumi.nomad.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Variable(\"example\", VariableArgs.builder()\n            .path(\"path/of/existing/variable\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: nomad:Variable\n    properties:\n      path: path/of/existing/variable\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getVariable.\n",
                "properties": {
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` - The namepsace in which the variable exists.\n"
                    },
                    "path": {
                        "type": "string",
                        "description": "`(string)` - Path to the existing variable.\n"
                    }
                },
                "type": "object",
                "required": [
                    "path"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getVariable.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "items": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "`(map[string]string)` - Map of items in the variable.\n",
                        "secret": true,
                        "type": "object"
                    },
                    "namespace": {
                        "description": "`(string)` - The namespace in which the variable exists.\n",
                        "type": "string"
                    },
                    "path": {
                        "description": "`(string)` - The path at which the variable exists.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "items",
                    "path",
                    "id"
                ],
                "type": "object"
            }
        },
        "nomad:index/getVolumes:getVolumes": {
            "description": "Retrieve a list of volumes in Nomad.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as nomad from \"@pulumi/nomad\";\n\nconst example = nomad.getVolumes({});\n```\n```python\nimport pulumi\nimport pulumi_nomad as nomad\n\nexample = nomad.get_volumes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Nomad = Pulumi.Nomad;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Nomad.Index.GetVolumes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nomad.GetVolumes(ctx, \u0026nomad.GetVolumesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.nomad.NomadFunctions;\nimport com.pulumi.nomad.inputs.GetVolumesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NomadFunctions.getVolumes(GetVolumesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: nomad:getVolumes\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
            "inputs": {
                "description": "A collection of arguments for invoking getVolumes.\n",
                "properties": {
                    "namespace": {
                        "type": "string",
                        "description": "`(string: \"default\")` Nomad namespace.\n"
                    },
                    "nodeId": {
                        "type": "string",
                        "description": "`(string: optional)` Volume node filter.\n"
                    },
                    "pluginId": {
                        "type": "string",
                        "description": "`(string: optional)` Plugin ID filter.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "`(string: \"csi\")` Volume type (one of \u003cspan pulumi-lang-nodejs=\"`csi`\" pulumi-lang-dotnet=\"`Csi`\" pulumi-lang-go=\"`csi`\" pulumi-lang-python=\"`csi`\" pulumi-lang-yaml=\"`csi`\" pulumi-lang-java=\"`csi`\"\u003e`csi`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e)\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getVolumes.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "namespace": {
                        "description": "\u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e Volume namespace.\n",
                        "type": "string"
                    },
                    "nodeId": {
                        "type": "string"
                    },
                    "pluginId": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "volumes": {
                        "description": "`list of maps` a list of volumes in the cluster.\n",
                        "items": {
                            "additionalProperties": {
                                "type": "string"
                            },
                            "type": "object"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "volumes",
                    "id"
                ],
                "type": "object"
            }
        },
        "pulumi:providers:nomad/terraformConfig": {
            "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
            "inputs": {
                "properties": {
                    "__self__": {
                        "type": "ref",
                        "$ref": "#/provider"
                    }
                },
                "type": "pulumi:providers:nomad/terraformConfig",
                "required": [
                    "__self__"
                ]
            },
            "outputs": {
                "properties": {
                    "result": {
                        "additionalProperties": {
                            "$ref": "pulumi.json#/Any"
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "result"
                ],
                "type": "object"
            }
        }
    }
}