{"attribution":"This Pulumi package is based on the [`commercetools` Terraform Provider](https://github.com/labd/terraform-provider-commercetools).","config":{"variables":{"apiUrl":{"description":"The API URL of the commercetools platform. https://docs.commercetools.com/api/general-concepts#hosts","type":"string"},"clientId":{"description":"The OAuth Client ID for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"clientSecret":{"description":"The OAuth Client Secret for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"projectKey":{"description":"The project key of commercetools platform project. https://docs.commercetools.com/getting-started","secret":true,"type":"string"},"scopes":{"description":"A list as string of OAuth scopes assigned to a project key, to access resources in a commercetools platform project. https://docs.commercetools.com/api/authorization","type":"string"},"tokenUrl":{"description":"The authentication URL of the commercetools platform. https://docs.commercetools.com/api/authorization","type":"string"}}},"description":"A Pulumi provider dynamically bridged from commercetools.","functions":{"commercetools:index/getState:getState":{"description":"Fetches state information for the given key. This is an easy way to import the id of an existing state for a given key.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\n// The Initial state is a state that is provided in a new commercetools environment by default\nconst initialState = commercetools.getState({\n    key: \"Initial\",\n});\nconst backorder = new commercetools.State(\"backorder\", {\n    key: \"backorder\",\n    type: \"LineItemState\",\n    name: {\n        en: \"Back Order\",\n    },\n    description: {\n        en: \"Not available - on back order\",\n    },\n    initial: false,\n});\nconst fromCreatedToAllocated = new commercetools.StateTransitions(\"from_created_to_allocated\", {\n    from: initialState.then(initialState => initialState.id),\n    tos: [backorder.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\n# The Initial state is a state that is provided in a new commercetools environment by default\ninitial_state = commercetools.get_state(key=\"Initial\")\nbackorder = commercetools.State(\"backorder\",\n    key=\"backorder\",\n    type=\"LineItemState\",\n    name={\n        \"en\": \"Back Order\",\n    },\n    description={\n        \"en\": \"Not available - on back order\",\n    },\n    initial=False)\nfrom_created_to_allocated = commercetools.StateTransitions(\"from_created_to_allocated\",\n    from_=initial_state.id,\n    tos=[backorder.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    // The Initial state is a state that is provided in a new commercetools environment by default\n    var initialState = Commercetools.GetState.Invoke(new()\n    {\n        Key = \"Initial\",\n    });\n\n    var backorder = new Commercetools.State(\"backorder\", new()\n    {\n        Key = \"backorder\",\n        Type = \"LineItemState\",\n        Name = \n        {\n            { \"en\", \"Back Order\" },\n        },\n        Description = \n        {\n            { \"en\", \"Not available - on back order\" },\n        },\n        Initial = false,\n    });\n\n    var fromCreatedToAllocated = new Commercetools.StateTransitions(\"from_created_to_allocated\", new()\n    {\n        From = initialState.Apply(getStateResult => getStateResult.Id),\n        Tos = new[]\n        {\n            backorder.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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// The Initial state is a state that is provided in a new commercetools environment by default\n\t\tinitialState, err := commercetools.LookupState(ctx, &commercetools.LookupStateArgs{\n\t\t\tKey: \"Initial\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackorder, err := commercetools.NewState(ctx, \"backorder\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"backorder\"),\n\t\t\tType: pulumi.String(\"LineItemState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Back Order\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Not available - on back order\"),\n\t\t\t},\n\t\t\tInitial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewStateTransitions(ctx, \"from_created_to_allocated\", &commercetools.StateTransitionsArgs{\n\t\t\tFrom: pulumi.String(initialState.Id),\n\t\t\tTos: pulumi.StringArray{\n\t\t\t\tbackorder.ID(),\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.commercetools.CommercetoolsFunctions;\nimport com.pulumi.commercetools.inputs.GetStateArgs;\nimport com.pulumi.commercetools.State;\nimport com.pulumi.commercetools.StateArgs;\nimport com.pulumi.commercetools.StateTransitions;\nimport com.pulumi.commercetools.StateTransitionsArgs;\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        // The Initial state is a state that is provided in a new commercetools environment by default\n        final var initialState = CommercetoolsFunctions.getState(GetStateArgs.builder()\n            .key(\"Initial\")\n            .build());\n\n        var backorder = new State(\"backorder\", StateArgs.builder()\n            .key(\"backorder\")\n            .type(\"LineItemState\")\n            .name(Map.of(\"en\", \"Back Order\"))\n            .description(Map.of(\"en\", \"Not available - on back order\"))\n            .initial(false)\n            .build());\n\n        var fromCreatedToAllocated = new StateTransitions(\"fromCreatedToAllocated\", StateTransitionsArgs.builder()\n            .from(initialState.id())\n            .tos(backorder.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fromCreatedToAllocated:\n    type: commercetools:StateTransitions\n    name: from_created_to_allocated\n    properties:\n      from: ${initialState.id}\n      tos:\n        - ${backorder.id}\n  backorder:\n    type: commercetools:State\n    properties:\n      key: backorder\n      type: LineItemState\n      name:\n        en: Back Order\n      description:\n        en: Not available - on back order\n      initial: false\nvariables:\n  # The Initial state is a state that is provided in a new commercetools environment by default\n  initialState:\n    fn::invoke:\n      function: commercetools:getState\n      arguments:\n        key: Initial\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getState.\n","properties":{"key":{"description":"Key of the state\n","type":"string"}},"required":["key"],"type":"object"},"outputs":{"description":"A collection of values returned by getState.\n","properties":{"id":{"description":"ID of the state\n","type":"string"},"key":{"description":"Key of the state\n","type":"string"}},"required":["id","key"],"type":"object"}},"commercetools:index/getType:getType":{"description":"Fetches type information\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst existingType = commercetools.getType({\n    key: \"test\",\n});\nconst test = new commercetools.Channel(\"test\", {\n    key: \"test\",\n    roles: [\"ProductDistribution\"],\n    custom: {\n        typeId: existingType.then(existingType => existingType.id),\n        fields: {\n            \"my-field\": \"foobar\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nexisting_type = commercetools.get_type(key=\"test\")\ntest = commercetools.Channel(\"test\",\n    key=\"test\",\n    roles=[\"ProductDistribution\"],\n    custom={\n        \"type_id\": existing_type.id,\n        \"fields\": {\n            \"my-field\": \"foobar\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var existingType = Commercetools.GetType.Invoke(new()\n    {\n        Key = \"test\",\n    });\n\n    var test = new Commercetools.Channel(\"test\", new()\n    {\n        Key = \"test\",\n        Roles = new[]\n        {\n            \"ProductDistribution\",\n        },\n        Custom = new Commercetools.Inputs.ChannelCustomArgs\n        {\n            TypeId = existingType.Apply(getTypeResult => getTypeResult.Id),\n            Fields = \n            {\n                { \"my-field\", \"foobar\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texistingType, err := commercetools.LookupType(ctx, &commercetools.LookupTypeArgs{\n\t\t\tKey: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewChannel(ctx, \"test\", &commercetools.ChannelArgs{\n\t\t\tKey: pulumi.String(\"test\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ProductDistribution\"),\n\t\t\t},\n\t\t\tCustom: &commercetools.ChannelCustomArgs{\n\t\t\t\tTypeId: pulumi.String(existingType.Id),\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my-field\": pulumi.String(\"foobar\"),\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.commercetools.CommercetoolsFunctions;\nimport com.pulumi.commercetools.inputs.GetTypeArgs;\nimport com.pulumi.commercetools.Channel;\nimport com.pulumi.commercetools.ChannelArgs;\nimport com.pulumi.commercetools.inputs.ChannelCustomArgs;\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 existingType = CommercetoolsFunctions.getType(GetTypeArgs.builder()\n            .key(\"test\")\n            .build());\n\n        var test = new Channel(\"test\", ChannelArgs.builder()\n            .key(\"test\")\n            .roles(\"ProductDistribution\")\n            .custom(ChannelCustomArgs.builder()\n                .typeId(existingType.id())\n                .fields(Map.of(\"my-field\", \"foobar\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: commercetools:Channel\n    properties:\n      key: test\n      roles:\n        - ProductDistribution\n      custom:\n        typeId: ${existingType.id}\n        fields:\n          my-field: foobar\nvariables:\n  existingType:\n    fn::invoke:\n      function: commercetools:getType\n      arguments:\n        key: test\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getType.\n","properties":{"key":{"description":"Key of the custom type\n","type":"string"}},"required":["key"],"type":"object"},"outputs":{"description":"A collection of values returned by getType.\n","properties":{"id":{"description":"ID of the custom type\n","type":"string"},"key":{"description":"Key of the custom type\n","type":"string"}},"required":["id","key"],"type":"object"}},"pulumi:providers:commercetools/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:commercetools"}},"required":["__self__"],"type":"object"},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"commercetools"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from commercetools.","readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/labd/terraform-provider-commercetools)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-commercetools` repo](https://github.com/labd/terraform-provider-commercetools/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/labd/terraform-provider-commercetools)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-commercetools` repo](https://github.com/labd/terraform-provider-commercetools/issues).","respectSchemaVersion":true}},"meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"name":"commercetools","parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2xhYmQvY29tbWVyY2V0b29scyIsInZlcnNpb24iOiIxLjIyLjAifX0="},"provider":{"description":"The provider type for the commercetools 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","inputProperties":{"apiUrl":{"description":"The API URL of the commercetools platform. https://docs.commercetools.com/api/general-concepts#hosts","type":"string"},"clientId":{"description":"The OAuth Client ID for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"clientSecret":{"description":"The OAuth Client Secret for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"projectKey":{"description":"The project key of commercetools platform project. https://docs.commercetools.com/getting-started","secret":true,"type":"string"},"scopes":{"description":"A list as string of OAuth scopes assigned to a project key, to access resources in a commercetools platform project. https://docs.commercetools.com/api/authorization","type":"string"},"tokenUrl":{"description":"The authentication URL of the commercetools platform. https://docs.commercetools.com/api/authorization","type":"string"}},"methods":{"terraformConfig":"pulumi:providers:commercetools/terraformConfig"},"properties":{"apiUrl":{"description":"The API URL of the commercetools platform. https://docs.commercetools.com/api/general-concepts#hosts","type":"string"},"clientId":{"description":"The OAuth Client ID for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"clientSecret":{"description":"The OAuth Client Secret for a commercetools platform project. https://docs.commercetools.com/api/authorization","secret":true,"type":"string"},"projectKey":{"description":"The project key of commercetools platform project. https://docs.commercetools.com/getting-started","secret":true,"type":"string"},"scopes":{"description":"A list as string of OAuth scopes assigned to a project key, to access resources in a commercetools platform project. https://docs.commercetools.com/api/authorization","type":"string"},"tokenUrl":{"description":"The authentication URL of the commercetools platform. https://docs.commercetools.com/api/authorization","type":"string"}},"type":"object"},"publisher":"labd","repository":"https://github.com/labd/terraform-provider-commercetools","resources":{"commercetools:index/apiClient:ApiClient":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_api_client = new commercetools.ApiClient(\"my-api-client\", {\n    name: \"My API Client\",\n    scopes: [\n        \"manage_orders:my-ct-project-key\",\n        \"manage_payments:my-ct-project-key\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_api_client = commercetools.ApiClient(\"my-api-client\",\n    name=\"My API Client\",\n    scopes=[\n        \"manage_orders:my-ct-project-key\",\n        \"manage_payments:my-ct-project-key\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_api_client = new Commercetools.ApiClient(\"my-api-client\", new()\n    {\n        Name = \"My API Client\",\n        Scopes = new[]\n        {\n            \"manage_orders:my-ct-project-key\",\n            \"manage_payments:my-ct-project-key\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewApiClient(ctx, \"my-api-client\", &commercetools.ApiClientArgs{\n\t\t\tName: pulumi.String(\"My API Client\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"manage_orders:my-ct-project-key\"),\n\t\t\t\tpulumi.String(\"manage_payments:my-ct-project-key\"),\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.commercetools.ApiClient;\nimport com.pulumi.commercetools.ApiClientArgs;\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 my_api_client = new ApiClient(\"my-api-client\", ApiClientArgs.builder()\n            .name(\"My API Client\")\n            .scopes(            \n                \"manage_orders:my-ct-project-key\",\n                \"manage_payments:my-ct-project-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-api-client:\n    type: commercetools:ApiClient\n    properties:\n      name: My API Client\n      scopes:\n        - manage_orders:my-ct-project-key\n        - manage_payments:my-ct-project-key\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"accessTokenValiditySeconds":{"description":"Expiration time in seconds for each access token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"apiClientId":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the API client\n","type":"string"},"refreshTokenValiditySeconds":{"description":"Inactivity expiration time in seconds for each refresh token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"scopes":{"description":"A list of the [OAuth scopes](https://docs.commercetools.com/api/scopes)\n","items":{"type":"string"},"type":"array"}},"properties":{"accessTokenValiditySeconds":{"description":"Expiration time in seconds for each access token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"apiClientId":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the API client\n","type":"string"},"refreshTokenValiditySeconds":{"description":"Inactivity expiration time in seconds for each refresh token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"scopes":{"description":"A list of the [OAuth scopes](https://docs.commercetools.com/api/scopes)\n","items":{"type":"string"},"type":"array"},"secret":{"secret":true,"type":"string"}},"required":["apiClientId","name","scopes","secret"],"requiredInputs":["scopes"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiClient resources.\n","properties":{"accessTokenValiditySeconds":{"description":"Expiration time in seconds for each access token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"apiClientId":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the API client\n","type":"string"},"refreshTokenValiditySeconds":{"description":"Inactivity expiration time in seconds for each refresh token obtained by the APIClient. Only present when set with the APIClientDraft. If not present the default value applies.\n","type":"number"},"scopes":{"description":"A list of the [OAuth scopes](https://docs.commercetools.com/api/scopes)\n","items":{"type":"string"},"type":"array"},"secret":{"secret":true,"type":"string"}},"type":"object"},"type":"object"},"commercetools:index/apiExtension:ApiExtension":{"description":"Create a new API extension to extend the behaviour of an API with business logic. Note that API extensions affect the performance of the API it is extending. If it fails, the whole API call fails \n\nAlso see the [API Extension API Documentation](https://docs.commercetools.com/api/projects/api-extensions)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\nimport * as google from \"@pulumi/google\";\n\n// HTTP api extension\nconst my_http_extension = new commercetools.ApiExtension(\"my-http-extension\", {\n    key: \"my-http-extension-key\",\n    destination: {\n        type: \"HTTP\",\n        url: \"https://example.com\",\n        authorizationHeader: \"Basic 12345\",\n    },\n    triggers: [{\n        resourceTypeId: \"customer\",\n        actions: [\n            \"Create\",\n            \"Update\",\n        ],\n    }],\n});\n// AWS Lambda api extension\nconst my_awslambda_extension = new commercetools.ApiExtension(\"my-awslambda-extension\", {\n    key: \"my-awslambda-extension-key\",\n    destination: {\n        type: \"awslambda\",\n        arn: \"us-east-1:123456789012:mylambda\",\n        accessKey: \"mykey\",\n        accessSecret: \"mysecret\",\n    },\n    triggers: [{\n        resourceTypeId: \"customer\",\n        actions: [\n            \"Create\",\n            \"Update\",\n        ],\n    }],\n});\n// Google Cloud Function api extension\nconst my_googlecloudfunction_extension = new commercetools.ApiExtension(\"my-googlecloudfunction-extension\", {\n    key: \"my-googlecloudfunction-extension-key\",\n    destination: {\n        type: \"googlecloudfunction\",\n        url: \"https://example.com\",\n    },\n    triggers: [{\n        resourceTypeId: \"customer\",\n        actions: [\n            \"Create\",\n            \"Update\",\n        ],\n    }],\n});\nconst myCloudFunction = new google.index.CloudfunctionsFunction(\"my_cloud_function\", {\n    name: \"function-test\",\n    description: \"My function\",\n    runtime: \"nodejs16\",\n});\nconst invoker = new google.index.CloudfunctionsFunctionIamMember(\"invoker\", {\n    project: \"my-project\",\n    region: \"europe-central2\",\n    cloudFunction: myCloudFunction.name,\n    role: \"roles/cloudfunctions.invoker\",\n    member: \"serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\nimport pulumi_google as google\n\n# HTTP api extension\nmy_http_extension = commercetools.ApiExtension(\"my-http-extension\",\n    key=\"my-http-extension-key\",\n    destination={\n        \"type\": \"HTTP\",\n        \"url\": \"https://example.com\",\n        \"authorization_header\": \"Basic 12345\",\n    },\n    triggers=[{\n        \"resource_type_id\": \"customer\",\n        \"actions\": [\n            \"Create\",\n            \"Update\",\n        ],\n    }])\n# AWS Lambda api extension\nmy_awslambda_extension = commercetools.ApiExtension(\"my-awslambda-extension\",\n    key=\"my-awslambda-extension-key\",\n    destination={\n        \"type\": \"awslambda\",\n        \"arn\": \"us-east-1:123456789012:mylambda\",\n        \"access_key\": \"mykey\",\n        \"access_secret\": \"mysecret\",\n    },\n    triggers=[{\n        \"resource_type_id\": \"customer\",\n        \"actions\": [\n            \"Create\",\n            \"Update\",\n        ],\n    }])\n# Google Cloud Function api extension\nmy_googlecloudfunction_extension = commercetools.ApiExtension(\"my-googlecloudfunction-extension\",\n    key=\"my-googlecloudfunction-extension-key\",\n    destination={\n        \"type\": \"googlecloudfunction\",\n        \"url\": \"https://example.com\",\n    },\n    triggers=[{\n        \"resource_type_id\": \"customer\",\n        \"actions\": [\n            \"Create\",\n            \"Update\",\n        ],\n    }])\nmy_cloud_function = google.index.CloudfunctionsFunction(\"my_cloud_function\",\n    name=function-test,\n    description=My function,\n    runtime=nodejs16)\ninvoker = google.index.CloudfunctionsFunctionIamMember(\"invoker\",\n    project=my-project,\n    region=europe-central2,\n    cloud_function=my_cloud_function.name,\n    role=roles/cloudfunctions.invoker,\n    member=serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\nusing Google = Pulumi.Google;\n\nreturn await Deployment.RunAsync(() => \n{\n    // HTTP api extension\n    var my_http_extension = new Commercetools.ApiExtension(\"my-http-extension\", new()\n    {\n        Key = \"my-http-extension-key\",\n        Destination = new Commercetools.Inputs.ApiExtensionDestinationArgs\n        {\n            Type = \"HTTP\",\n            Url = \"https://example.com\",\n            AuthorizationHeader = \"Basic 12345\",\n        },\n        Triggers = new[]\n        {\n            new Commercetools.Inputs.ApiExtensionTriggerArgs\n            {\n                ResourceTypeId = \"customer\",\n                Actions = new[]\n                {\n                    \"Create\",\n                    \"Update\",\n                },\n            },\n        },\n    });\n\n    // AWS Lambda api extension\n    var my_awslambda_extension = new Commercetools.ApiExtension(\"my-awslambda-extension\", new()\n    {\n        Key = \"my-awslambda-extension-key\",\n        Destination = new Commercetools.Inputs.ApiExtensionDestinationArgs\n        {\n            Type = \"awslambda\",\n            Arn = \"us-east-1:123456789012:mylambda\",\n            AccessKey = \"mykey\",\n            AccessSecret = \"mysecret\",\n        },\n        Triggers = new[]\n        {\n            new Commercetools.Inputs.ApiExtensionTriggerArgs\n            {\n                ResourceTypeId = \"customer\",\n                Actions = new[]\n                {\n                    \"Create\",\n                    \"Update\",\n                },\n            },\n        },\n    });\n\n    // Google Cloud Function api extension\n    var my_googlecloudfunction_extension = new Commercetools.ApiExtension(\"my-googlecloudfunction-extension\", new()\n    {\n        Key = \"my-googlecloudfunction-extension-key\",\n        Destination = new Commercetools.Inputs.ApiExtensionDestinationArgs\n        {\n            Type = \"googlecloudfunction\",\n            Url = \"https://example.com\",\n        },\n        Triggers = new[]\n        {\n            new Commercetools.Inputs.ApiExtensionTriggerArgs\n            {\n                ResourceTypeId = \"customer\",\n                Actions = new[]\n                {\n                    \"Create\",\n                    \"Update\",\n                },\n            },\n        },\n    });\n\n    var myCloudFunction = new Google.Index.CloudfunctionsFunction(\"my_cloud_function\", new()\n    {\n        Name = \"function-test\",\n        Description = \"My function\",\n        Runtime = \"nodejs16\",\n    });\n\n    var invoker = new Google.Index.CloudfunctionsFunctionIamMember(\"invoker\", new()\n    {\n        Project = \"my-project\",\n        Region = \"europe-central2\",\n        CloudFunction = myCloudFunction.Name,\n        Role = \"roles/cloudfunctions.invoker\",\n        Member = \"serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-google/sdk/go/google\"\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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// HTTP api extension\n\t\t_, err := commercetools.NewApiExtension(ctx, \"my-http-extension\", &commercetools.ApiExtensionArgs{\n\t\t\tKey: pulumi.String(\"my-http-extension-key\"),\n\t\t\tDestination: &commercetools.ApiExtensionDestinationArgs{\n\t\t\t\tType:                pulumi.String(\"HTTP\"),\n\t\t\t\tUrl:                 pulumi.String(\"https://example.com\"),\n\t\t\t\tAuthorizationHeader: pulumi.String(\"Basic 12345\"),\n\t\t\t},\n\t\t\tTriggers: commercetools.ApiExtensionTriggerArray{\n\t\t\t\t&commercetools.ApiExtensionTriggerArgs{\n\t\t\t\t\tResourceTypeId: pulumi.String(\"customer\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"Update\"),\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// AWS Lambda api extension\n\t\t_, err = commercetools.NewApiExtension(ctx, \"my-awslambda-extension\", &commercetools.ApiExtensionArgs{\n\t\t\tKey: pulumi.String(\"my-awslambda-extension-key\"),\n\t\t\tDestination: &commercetools.ApiExtensionDestinationArgs{\n\t\t\t\tType:         pulumi.String(\"awslambda\"),\n\t\t\t\tArn:          pulumi.String(\"us-east-1:123456789012:mylambda\"),\n\t\t\t\tAccessKey:    pulumi.String(\"mykey\"),\n\t\t\t\tAccessSecret: pulumi.String(\"mysecret\"),\n\t\t\t},\n\t\t\tTriggers: commercetools.ApiExtensionTriggerArray{\n\t\t\t\t&commercetools.ApiExtensionTriggerArgs{\n\t\t\t\t\tResourceTypeId: pulumi.String(\"customer\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"Update\"),\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// Google Cloud Function api extension\n\t\t_, err = commercetools.NewApiExtension(ctx, \"my-googlecloudfunction-extension\", &commercetools.ApiExtensionArgs{\n\t\t\tKey: pulumi.String(\"my-googlecloudfunction-extension-key\"),\n\t\t\tDestination: &commercetools.ApiExtensionDestinationArgs{\n\t\t\t\tType: pulumi.String(\"googlecloudfunction\"),\n\t\t\t\tUrl:  pulumi.String(\"https://example.com\"),\n\t\t\t},\n\t\t\tTriggers: commercetools.ApiExtensionTriggerArray{\n\t\t\t\t&commercetools.ApiExtensionTriggerArgs{\n\t\t\t\t\tResourceTypeId: pulumi.String(\"customer\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"Update\"),\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\tmyCloudFunction, err := google.NewCloudfunctionsFunction(ctx, \"my_cloud_function\", &google.CloudfunctionsFunctionArgs{\n\t\t\tName:        \"function-test\",\n\t\t\tDescription: \"My function\",\n\t\t\tRuntime:     \"nodejs16\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = google.NewCloudfunctionsFunctionIamMember(ctx, \"invoker\", &google.CloudfunctionsFunctionIamMemberArgs{\n\t\t\tProject:       \"my-project\",\n\t\t\tRegion:        \"europe-central2\",\n\t\t\tCloudFunction: myCloudFunction.Name,\n\t\t\tRole:          \"roles/cloudfunctions.invoker\",\n\t\t\tMember:        \"serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com\",\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.commercetools.ApiExtension;\nimport com.pulumi.commercetools.ApiExtensionArgs;\nimport com.pulumi.commercetools.inputs.ApiExtensionDestinationArgs;\nimport com.pulumi.commercetools.inputs.ApiExtensionTriggerArgs;\nimport com.pulumi.google.CloudfunctionsFunction;\nimport com.pulumi.google.CloudfunctionsFunctionArgs;\nimport com.pulumi.google.CloudfunctionsFunctionIamMember;\nimport com.pulumi.google.CloudfunctionsFunctionIamMemberArgs;\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        // HTTP api extension\n        var my_http_extension = new ApiExtension(\"my-http-extension\", ApiExtensionArgs.builder()\n            .key(\"my-http-extension-key\")\n            .destination(ApiExtensionDestinationArgs.builder()\n                .type(\"HTTP\")\n                .url(\"https://example.com\")\n                .authorizationHeader(\"Basic 12345\")\n                .build())\n            .triggers(ApiExtensionTriggerArgs.builder()\n                .resourceTypeId(\"customer\")\n                .actions(                \n                    \"Create\",\n                    \"Update\")\n                .build())\n            .build());\n\n        // AWS Lambda api extension\n        var my_awslambda_extension = new ApiExtension(\"my-awslambda-extension\", ApiExtensionArgs.builder()\n            .key(\"my-awslambda-extension-key\")\n            .destination(ApiExtensionDestinationArgs.builder()\n                .type(\"awslambda\")\n                .arn(\"us-east-1:123456789012:mylambda\")\n                .accessKey(\"mykey\")\n                .accessSecret(\"mysecret\")\n                .build())\n            .triggers(ApiExtensionTriggerArgs.builder()\n                .resourceTypeId(\"customer\")\n                .actions(                \n                    \"Create\",\n                    \"Update\")\n                .build())\n            .build());\n\n        // Google Cloud Function api extension\n        var my_googlecloudfunction_extension = new ApiExtension(\"my-googlecloudfunction-extension\", ApiExtensionArgs.builder()\n            .key(\"my-googlecloudfunction-extension-key\")\n            .destination(ApiExtensionDestinationArgs.builder()\n                .type(\"googlecloudfunction\")\n                .url(\"https://example.com\")\n                .build())\n            .triggers(ApiExtensionTriggerArgs.builder()\n                .resourceTypeId(\"customer\")\n                .actions(                \n                    \"Create\",\n                    \"Update\")\n                .build())\n            .build());\n\n        var myCloudFunction = new CloudfunctionsFunction(\"myCloudFunction\", CloudfunctionsFunctionArgs.builder()\n            .name(\"function-test\")\n            .description(\"My function\")\n            .runtime(\"nodejs16\")\n            .build());\n\n        var invoker = new CloudfunctionsFunctionIamMember(\"invoker\", CloudfunctionsFunctionIamMemberArgs.builder()\n            .project(\"my-project\")\n            .region(\"europe-central2\")\n            .cloudFunction(myCloudFunction.name())\n            .role(\"roles/cloudfunctions.invoker\")\n            .member(\"serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # HTTP api extension\n  my-http-extension:\n    type: commercetools:ApiExtension\n    properties:\n      key: my-http-extension-key\n      destination:\n        type: HTTP\n        url: https://example.com\n        authorizationHeader: Basic 12345\n      triggers:\n        - resourceTypeId: customer\n          actions:\n            - Create\n            - Update\n  # AWS Lambda api extension\n  my-awslambda-extension:\n    type: commercetools:ApiExtension\n    properties:\n      key: my-awslambda-extension-key\n      destination:\n        type: awslambda\n        arn: us-east-1:123456789012:mylambda\n        accessKey: mykey\n        accessSecret: mysecret\n      triggers:\n        - resourceTypeId: customer\n          actions:\n            - Create\n            - Update\n  # Google Cloud Function api extension\n  my-googlecloudfunction-extension:\n    type: commercetools:ApiExtension\n    properties:\n      key: my-googlecloudfunction-extension-key\n      destination:\n        type: googlecloudfunction\n        url: https://example.com\n      triggers:\n        - resourceTypeId: customer\n          actions:\n            - Create\n            - Update\n  myCloudFunction:\n    type: google:CloudfunctionsFunction\n    name: my_cloud_function\n    properties:\n      name: function-test\n      description: My function\n      runtime: nodejs16\n  invoker:\n    type: google:CloudfunctionsFunctionIamMember\n    properties:\n      project: my-project\n      region: europe-central2\n      cloudFunction: ${myCloudFunction.name}\n      role: roles/cloudfunctions.invoker\n      member: serviceAccount:extensions@commercetools-platform.iam.gserviceaccount.com\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"apiExtensionId":{"description":"The ID of this resource.\n","type":"string"},"destination":{"$ref":"#/types/commercetools:index%2FApiExtensionDestination:ApiExtensionDestination","description":"[Destination](https://docs.commercetools.com/api/projects/api-extensions#destination) Details where the extension can be reached\n"},"key":{"description":"User-specific unique identifier for the extension\n","type":"string"},"timeoutInMs":{"description":"Maximum time (in milliseconds) that the Extension can respond within. If no timeout is provided, the default value is used for all types of Extensions, including payment Extensions. The maximum value is 10000 ms (10 seconds) for payment Extensions and 2000 ms (2 seconds) for all other Extensions.\n","type":"number"},"triggers":{"description":"Array of [Trigger](https://docs.commercetools.com/api/projects/api-extensions#trigger) Describes what triggers the extension\n","items":{"$ref":"#/types/commercetools:index%2FApiExtensionTrigger:ApiExtensionTrigger"},"type":"array"}},"properties":{"apiExtensionId":{"description":"The ID of this resource.\n","type":"string"},"destination":{"$ref":"#/types/commercetools:index%2FApiExtensionDestination:ApiExtensionDestination","description":"[Destination](https://docs.commercetools.com/api/projects/api-extensions#destination) Details where the extension can be reached\n"},"key":{"description":"User-specific unique identifier for the extension\n","type":"string"},"timeoutInMs":{"description":"Maximum time (in milliseconds) that the Extension can respond within. If no timeout is provided, the default value is used for all types of Extensions, including payment Extensions. The maximum value is 10000 ms (10 seconds) for payment Extensions and 2000 ms (2 seconds) for all other Extensions.\n","type":"number"},"triggers":{"description":"Array of [Trigger](https://docs.commercetools.com/api/projects/api-extensions#trigger) Describes what triggers the extension\n","items":{"$ref":"#/types/commercetools:index%2FApiExtensionTrigger:ApiExtensionTrigger"},"type":"array"},"version":{"type":"number"}},"required":["apiExtensionId","destination","triggers","version"],"requiredInputs":["destination","triggers"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiExtension resources.\n","properties":{"apiExtensionId":{"description":"The ID of this resource.\n","type":"string"},"destination":{"$ref":"#/types/commercetools:index%2FApiExtensionDestination:ApiExtensionDestination","description":"[Destination](https://docs.commercetools.com/api/projects/api-extensions#destination) Details where the extension can be reached\n"},"key":{"description":"User-specific unique identifier for the extension\n","type":"string"},"timeoutInMs":{"description":"Maximum time (in milliseconds) that the Extension can respond within. If no timeout is provided, the default value is used for all types of Extensions, including payment Extensions. The maximum value is 10000 ms (10 seconds) for payment Extensions and 2000 ms (2 seconds) for all other Extensions.\n","type":"number"},"triggers":{"description":"Array of [Trigger](https://docs.commercetools.com/api/projects/api-extensions#trigger) Describes what triggers the extension\n","items":{"$ref":"#/types/commercetools:index%2FApiExtensionTrigger:ApiExtensionTrigger"},"type":"array"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/associateRole:AssociateRole":{"description":"Associate Roles provide a way to group granular Permissions and assign them to Associates within a Business Unit.\n\nSee also the [Associate Role API Documentation](https://docs.commercetools.com/api/projects/associate-roles)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_type = new commercetools.Type(\"my-type\", {\n    key: \"my-type\",\n    name: {\n        en: \"My type\",\n        nl: \"Mijn type\",\n    },\n    resourceTypeIds: [\"associate-role\"],\n    fields: [{\n        name: \"my-field\",\n        label: {\n            en: \"My field\",\n            nl: \"Mijn veld\",\n        },\n        type: {\n            name: \"String\",\n        },\n    }],\n});\nconst my_role = new commercetools.AssociateRole(\"my-role\", {\n    key: \"my-role\",\n    buyerAssignable: false,\n    name: \"My Role\",\n    permissions: [\n        \"AddChildUnits\",\n        \"UpdateAssociates\",\n        \"UpdateBusinessUnitDetails\",\n        \"UpdateParentUnit\",\n        \"ViewMyCarts\",\n        \"ViewOthersCarts\",\n        \"UpdateMyCarts\",\n        \"UpdateOthersCarts\",\n        \"CreateMyCarts\",\n        \"CreateOthersCarts\",\n        \"DeleteMyCarts\",\n        \"DeleteOthersCarts\",\n        \"ViewMyOrders\",\n        \"ViewOthersOrders\",\n        \"UpdateMyOrders\",\n        \"UpdateOthersOrders\",\n        \"CreateMyOrdersFromMyCarts\",\n        \"CreateMyOrdersFromMyQuotes\",\n        \"CreateOrdersFromOthersCarts\",\n        \"CreateOrdersFromOthersQuotes\",\n        \"ViewMyQuotes\",\n        \"ViewOthersQuotes\",\n        \"AcceptMyQuotes\",\n        \"AcceptOthersQuotes\",\n        \"DeclineMyQuotes\",\n        \"DeclineOthersQuotes\",\n        \"RenegotiateMyQuotes\",\n        \"RenegotiateOthersQuotes\",\n        \"ReassignMyQuotes\",\n        \"ReassignOthersQuotes\",\n        \"ViewMyQuoteRequests\",\n        \"ViewOthersQuoteRequests\",\n        \"UpdateMyQuoteRequests\",\n        \"UpdateOthersQuoteRequests\",\n        \"CreateMyQuoteRequestsFromMyCarts\",\n        \"CreateQuoteRequestsFromOthersCarts\",\n        \"CreateApprovalRules\",\n        \"UpdateApprovalRules\",\n        \"UpdateApprovalFlows\",\n    ],\n    custom: {\n        typeId: my_type.typeId,\n        fields: {\n            \"my-field\": \"My value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_type = commercetools.Type(\"my-type\",\n    key=\"my-type\",\n    name={\n        \"en\": \"My type\",\n        \"nl\": \"Mijn type\",\n    },\n    resource_type_ids=[\"associate-role\"],\n    fields=[{\n        \"name\": \"my-field\",\n        \"label\": {\n            \"en\": \"My field\",\n            \"nl\": \"Mijn veld\",\n        },\n        \"type\": {\n            \"name\": \"String\",\n        },\n    }])\nmy_role = commercetools.AssociateRole(\"my-role\",\n    key=\"my-role\",\n    buyer_assignable=False,\n    name=\"My Role\",\n    permissions=[\n        \"AddChildUnits\",\n        \"UpdateAssociates\",\n        \"UpdateBusinessUnitDetails\",\n        \"UpdateParentUnit\",\n        \"ViewMyCarts\",\n        \"ViewOthersCarts\",\n        \"UpdateMyCarts\",\n        \"UpdateOthersCarts\",\n        \"CreateMyCarts\",\n        \"CreateOthersCarts\",\n        \"DeleteMyCarts\",\n        \"DeleteOthersCarts\",\n        \"ViewMyOrders\",\n        \"ViewOthersOrders\",\n        \"UpdateMyOrders\",\n        \"UpdateOthersOrders\",\n        \"CreateMyOrdersFromMyCarts\",\n        \"CreateMyOrdersFromMyQuotes\",\n        \"CreateOrdersFromOthersCarts\",\n        \"CreateOrdersFromOthersQuotes\",\n        \"ViewMyQuotes\",\n        \"ViewOthersQuotes\",\n        \"AcceptMyQuotes\",\n        \"AcceptOthersQuotes\",\n        \"DeclineMyQuotes\",\n        \"DeclineOthersQuotes\",\n        \"RenegotiateMyQuotes\",\n        \"RenegotiateOthersQuotes\",\n        \"ReassignMyQuotes\",\n        \"ReassignOthersQuotes\",\n        \"ViewMyQuoteRequests\",\n        \"ViewOthersQuoteRequests\",\n        \"UpdateMyQuoteRequests\",\n        \"UpdateOthersQuoteRequests\",\n        \"CreateMyQuoteRequestsFromMyCarts\",\n        \"CreateQuoteRequestsFromOthersCarts\",\n        \"CreateApprovalRules\",\n        \"UpdateApprovalRules\",\n        \"UpdateApprovalFlows\",\n    ],\n    custom={\n        \"type_id\": my_type.type_id,\n        \"fields\": {\n            \"my-field\": \"My value\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_type = new Commercetools.Type(\"my-type\", new()\n    {\n        Key = \"my-type\",\n        Name = \n        {\n            { \"en\", \"My type\" },\n            { \"nl\", \"Mijn type\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"associate-role\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"my-field\",\n                Label = \n                {\n                    { \"en\", \"My field\" },\n                    { \"nl\", \"Mijn veld\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n        },\n    });\n\n    var my_role = new Commercetools.AssociateRole(\"my-role\", new()\n    {\n        Key = \"my-role\",\n        BuyerAssignable = false,\n        Name = \"My Role\",\n        Permissions = new[]\n        {\n            \"AddChildUnits\",\n            \"UpdateAssociates\",\n            \"UpdateBusinessUnitDetails\",\n            \"UpdateParentUnit\",\n            \"ViewMyCarts\",\n            \"ViewOthersCarts\",\n            \"UpdateMyCarts\",\n            \"UpdateOthersCarts\",\n            \"CreateMyCarts\",\n            \"CreateOthersCarts\",\n            \"DeleteMyCarts\",\n            \"DeleteOthersCarts\",\n            \"ViewMyOrders\",\n            \"ViewOthersOrders\",\n            \"UpdateMyOrders\",\n            \"UpdateOthersOrders\",\n            \"CreateMyOrdersFromMyCarts\",\n            \"CreateMyOrdersFromMyQuotes\",\n            \"CreateOrdersFromOthersCarts\",\n            \"CreateOrdersFromOthersQuotes\",\n            \"ViewMyQuotes\",\n            \"ViewOthersQuotes\",\n            \"AcceptMyQuotes\",\n            \"AcceptOthersQuotes\",\n            \"DeclineMyQuotes\",\n            \"DeclineOthersQuotes\",\n            \"RenegotiateMyQuotes\",\n            \"RenegotiateOthersQuotes\",\n            \"ReassignMyQuotes\",\n            \"ReassignOthersQuotes\",\n            \"ViewMyQuoteRequests\",\n            \"ViewOthersQuoteRequests\",\n            \"UpdateMyQuoteRequests\",\n            \"UpdateOthersQuoteRequests\",\n            \"CreateMyQuoteRequestsFromMyCarts\",\n            \"CreateQuoteRequestsFromOthersCarts\",\n            \"CreateApprovalRules\",\n            \"UpdateApprovalRules\",\n            \"UpdateApprovalFlows\",\n        },\n        Custom = new Commercetools.Inputs.AssociateRoleCustomArgs\n        {\n            TypeId = my_type.TypeId,\n            Fields = \n            {\n                { \"my-field\", \"My value\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_type, err := commercetools.NewType(ctx, \"my-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My type\"),\n\t\t\t\t\"nl\": pulumi.String(\"Mijn type\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"associate-role\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"my-field\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"My field\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Mijn veld\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\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 = commercetools.NewAssociateRole(ctx, \"my-role\", &commercetools.AssociateRoleArgs{\n\t\t\tKey:             pulumi.String(\"my-role\"),\n\t\t\tBuyerAssignable: pulumi.Bool(false),\n\t\t\tName:            pulumi.String(\"My Role\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AddChildUnits\"),\n\t\t\t\tpulumi.String(\"UpdateAssociates\"),\n\t\t\t\tpulumi.String(\"UpdateBusinessUnitDetails\"),\n\t\t\t\tpulumi.String(\"UpdateParentUnit\"),\n\t\t\t\tpulumi.String(\"ViewMyCarts\"),\n\t\t\t\tpulumi.String(\"ViewOthersCarts\"),\n\t\t\t\tpulumi.String(\"UpdateMyCarts\"),\n\t\t\t\tpulumi.String(\"UpdateOthersCarts\"),\n\t\t\t\tpulumi.String(\"CreateMyCarts\"),\n\t\t\t\tpulumi.String(\"CreateOthersCarts\"),\n\t\t\t\tpulumi.String(\"DeleteMyCarts\"),\n\t\t\t\tpulumi.String(\"DeleteOthersCarts\"),\n\t\t\t\tpulumi.String(\"ViewMyOrders\"),\n\t\t\t\tpulumi.String(\"ViewOthersOrders\"),\n\t\t\t\tpulumi.String(\"UpdateMyOrders\"),\n\t\t\t\tpulumi.String(\"UpdateOthersOrders\"),\n\t\t\t\tpulumi.String(\"CreateMyOrdersFromMyCarts\"),\n\t\t\t\tpulumi.String(\"CreateMyOrdersFromMyQuotes\"),\n\t\t\t\tpulumi.String(\"CreateOrdersFromOthersCarts\"),\n\t\t\t\tpulumi.String(\"CreateOrdersFromOthersQuotes\"),\n\t\t\t\tpulumi.String(\"ViewMyQuotes\"),\n\t\t\t\tpulumi.String(\"ViewOthersQuotes\"),\n\t\t\t\tpulumi.String(\"AcceptMyQuotes\"),\n\t\t\t\tpulumi.String(\"AcceptOthersQuotes\"),\n\t\t\t\tpulumi.String(\"DeclineMyQuotes\"),\n\t\t\t\tpulumi.String(\"DeclineOthersQuotes\"),\n\t\t\t\tpulumi.String(\"RenegotiateMyQuotes\"),\n\t\t\t\tpulumi.String(\"RenegotiateOthersQuotes\"),\n\t\t\t\tpulumi.String(\"ReassignMyQuotes\"),\n\t\t\t\tpulumi.String(\"ReassignOthersQuotes\"),\n\t\t\t\tpulumi.String(\"ViewMyQuoteRequests\"),\n\t\t\t\tpulumi.String(\"ViewOthersQuoteRequests\"),\n\t\t\t\tpulumi.String(\"UpdateMyQuoteRequests\"),\n\t\t\t\tpulumi.String(\"UpdateOthersQuoteRequests\"),\n\t\t\t\tpulumi.String(\"CreateMyQuoteRequestsFromMyCarts\"),\n\t\t\t\tpulumi.String(\"CreateQuoteRequestsFromOthersCarts\"),\n\t\t\t\tpulumi.String(\"CreateApprovalRules\"),\n\t\t\t\tpulumi.String(\"UpdateApprovalRules\"),\n\t\t\t\tpulumi.String(\"UpdateApprovalFlows\"),\n\t\t\t},\n\t\t\tCustom: &commercetools.AssociateRoleCustomArgs{\n\t\t\t\tTypeId: my_type.TypeId,\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my-field\": pulumi.String(\"My value\"),\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.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.AssociateRole;\nimport com.pulumi.commercetools.AssociateRoleArgs;\nimport com.pulumi.commercetools.inputs.AssociateRoleCustomArgs;\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 my_type = new Type(\"my-type\", TypeArgs.builder()\n            .key(\"my-type\")\n            .name(Map.ofEntries(\n                Map.entry(\"en\", \"My type\"),\n                Map.entry(\"nl\", \"Mijn type\")\n            ))\n            .resourceTypeIds(\"associate-role\")\n            .fields(TypeFieldArgs.builder()\n                .name(\"my-field\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"My field\"),\n                    Map.entry(\"nl\", \"Mijn veld\")\n                ))\n                .type(TypeFieldTypeArgs.builder()\n                    .name(\"String\")\n                    .build())\n                .build())\n            .build());\n\n        var my_role = new AssociateRole(\"my-role\", AssociateRoleArgs.builder()\n            .key(\"my-role\")\n            .buyerAssignable(false)\n            .name(\"My Role\")\n            .permissions(            \n                \"AddChildUnits\",\n                \"UpdateAssociates\",\n                \"UpdateBusinessUnitDetails\",\n                \"UpdateParentUnit\",\n                \"ViewMyCarts\",\n                \"ViewOthersCarts\",\n                \"UpdateMyCarts\",\n                \"UpdateOthersCarts\",\n                \"CreateMyCarts\",\n                \"CreateOthersCarts\",\n                \"DeleteMyCarts\",\n                \"DeleteOthersCarts\",\n                \"ViewMyOrders\",\n                \"ViewOthersOrders\",\n                \"UpdateMyOrders\",\n                \"UpdateOthersOrders\",\n                \"CreateMyOrdersFromMyCarts\",\n                \"CreateMyOrdersFromMyQuotes\",\n                \"CreateOrdersFromOthersCarts\",\n                \"CreateOrdersFromOthersQuotes\",\n                \"ViewMyQuotes\",\n                \"ViewOthersQuotes\",\n                \"AcceptMyQuotes\",\n                \"AcceptOthersQuotes\",\n                \"DeclineMyQuotes\",\n                \"DeclineOthersQuotes\",\n                \"RenegotiateMyQuotes\",\n                \"RenegotiateOthersQuotes\",\n                \"ReassignMyQuotes\",\n                \"ReassignOthersQuotes\",\n                \"ViewMyQuoteRequests\",\n                \"ViewOthersQuoteRequests\",\n                \"UpdateMyQuoteRequests\",\n                \"UpdateOthersQuoteRequests\",\n                \"CreateMyQuoteRequestsFromMyCarts\",\n                \"CreateQuoteRequestsFromOthersCarts\",\n                \"CreateApprovalRules\",\n                \"UpdateApprovalRules\",\n                \"UpdateApprovalFlows\")\n            .custom(AssociateRoleCustomArgs.builder()\n                .typeId(my_type.typeId())\n                .fields(Map.of(\"my-field\", \"My value\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-type:\n    type: commercetools:Type\n    properties:\n      key: my-type\n      name:\n        en: My type\n        nl: Mijn type\n      resourceTypeIds:\n        - associate-role\n      fields:\n        - name: my-field\n          label:\n            en: My field\n            nl: Mijn veld\n          type:\n            name: String\n  my-role:\n    type: commercetools:AssociateRole\n    properties:\n      key: my-role\n      buyerAssignable: false\n      name: My Role\n      permissions:\n        - AddChildUnits\n        - UpdateAssociates\n        - UpdateBusinessUnitDetails\n        - UpdateParentUnit\n        - ViewMyCarts\n        - ViewOthersCarts\n        - UpdateMyCarts\n        - UpdateOthersCarts\n        - CreateMyCarts\n        - CreateOthersCarts\n        - DeleteMyCarts\n        - DeleteOthersCarts\n        - ViewMyOrders\n        - ViewOthersOrders\n        - UpdateMyOrders\n        - UpdateOthersOrders\n        - CreateMyOrdersFromMyCarts\n        - CreateMyOrdersFromMyQuotes\n        - CreateOrdersFromOthersCarts\n        - CreateOrdersFromOthersQuotes\n        - ViewMyQuotes\n        - ViewOthersQuotes\n        - AcceptMyQuotes\n        - AcceptOthersQuotes\n        - DeclineMyQuotes\n        - DeclineOthersQuotes\n        - RenegotiateMyQuotes\n        - RenegotiateOthersQuotes\n        - ReassignMyQuotes\n        - ReassignOthersQuotes\n        - ViewMyQuoteRequests\n        - ViewOthersQuoteRequests\n        - UpdateMyQuoteRequests\n        - UpdateOthersQuoteRequests\n        - CreateMyQuoteRequestsFromMyCarts\n        - CreateQuoteRequestsFromOthersCarts\n        - CreateApprovalRules\n        - UpdateApprovalRules\n        - UpdateApprovalFlows\n      custom:\n        typeId: ${[\"my-type\"].typeId}\n        fields:\n          my-field: My value\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"buyerAssignable":{"description":"Whether the associate role can be assigned to an associate by a buyer. If false, the associate role can only be assigned using the general endpoint. Defaults to true.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FAssociateRoleCustom:AssociateRoleCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the associate role.\n","type":"string"},"name":{"description":"Name of the associate role.\n","type":"string"},"permissions":{"description":"List of permissions for the associate role. See the [Associate Role API Documentation](https://docs.commercetools.com/api/projects/associate-roles#ctp:api:type:Permission) for more information.\n","items":{"type":"string"},"type":"array"}},"properties":{"buyerAssignable":{"description":"Whether the associate role can be assigned to an associate by a buyer. If false, the associate role can only be assigned using the general endpoint. Defaults to true.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FAssociateRoleCustom:AssociateRoleCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the associate role.\n","type":"string"},"name":{"description":"Name of the associate role.\n","type":"string"},"permissions":{"description":"List of permissions for the associate role. See the [Associate Role API Documentation](https://docs.commercetools.com/api/projects/associate-roles#ctp:api:type:Permission) for more information.\n","items":{"type":"string"},"type":"array"},"version":{"description":"Current version of the associate role.\n","type":"number"}},"required":["buyerAssignable","key","name","permissions","version"],"requiredInputs":["key","permissions"],"stateInputs":{"description":"Input properties used for looking up and filtering AssociateRole resources.\n","properties":{"buyerAssignable":{"description":"Whether the associate role can be assigned to an associate by a buyer. If false, the associate role can only be assigned using the general endpoint. Defaults to true.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FAssociateRoleCustom:AssociateRoleCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the associate role.\n","type":"string"},"name":{"description":"Name of the associate role.\n","type":"string"},"permissions":{"description":"List of permissions for the associate role. See the [Associate Role API Documentation](https://docs.commercetools.com/api/projects/associate-roles#ctp:api:type:Permission) for more information.\n","items":{"type":"string"},"type":"array"},"version":{"description":"Current version of the associate role.\n","type":"number"}},"type":"object"},"type":"object"},"commercetools:index/attributeGroup:AttributeGroup":{"description":"Attribute Groups allow you to define a set of referenced Attribute Definitions for the purpose of giving one or more dedicated teams access to edit Attribute values in Product Variants for those Attributes in the Merchant Center. Depending on the use case, editing permission can be granted to all Attributes, to Attributes that are ungrouped, or none.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_attribute_group = new commercetools.AttributeGroup(\"my-attribute-group\", {\n    key: \"my-attribute-group-key\",\n    name: {\n        en: \"my-attribute-group-name\",\n    },\n    description: {\n        en: \"my-attribute-group-description\",\n    },\n    attributes: [\n        {\n            key: \"attribute-key-1\",\n        },\n        {\n            key: \"attribute-key-2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_attribute_group = commercetools.AttributeGroup(\"my-attribute-group\",\n    key=\"my-attribute-group-key\",\n    name={\n        \"en\": \"my-attribute-group-name\",\n    },\n    description={\n        \"en\": \"my-attribute-group-description\",\n    },\n    attributes=[\n        {\n            \"key\": \"attribute-key-1\",\n        },\n        {\n            \"key\": \"attribute-key-2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_attribute_group = new Commercetools.AttributeGroup(\"my-attribute-group\", new()\n    {\n        Key = \"my-attribute-group-key\",\n        Name = \n        {\n            { \"en\", \"my-attribute-group-name\" },\n        },\n        Description = \n        {\n            { \"en\", \"my-attribute-group-description\" },\n        },\n        Attributes = new[]\n        {\n            new Commercetools.Inputs.AttributeGroupAttributeArgs\n            {\n                Key = \"attribute-key-1\",\n            },\n            new Commercetools.Inputs.AttributeGroupAttributeArgs\n            {\n                Key = \"attribute-key-2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewAttributeGroup(ctx, \"my-attribute-group\", &commercetools.AttributeGroupArgs{\n\t\t\tKey: pulumi.String(\"my-attribute-group-key\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"my-attribute-group-name\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"my-attribute-group-description\"),\n\t\t\t},\n\t\t\tAttributes: commercetools.AttributeGroupAttributeArray{\n\t\t\t\t&commercetools.AttributeGroupAttributeArgs{\n\t\t\t\t\tKey: pulumi.String(\"attribute-key-1\"),\n\t\t\t\t},\n\t\t\t\t&commercetools.AttributeGroupAttributeArgs{\n\t\t\t\t\tKey: pulumi.String(\"attribute-key-2\"),\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.commercetools.AttributeGroup;\nimport com.pulumi.commercetools.AttributeGroupArgs;\nimport com.pulumi.commercetools.inputs.AttributeGroupAttributeArgs;\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 my_attribute_group = new AttributeGroup(\"my-attribute-group\", AttributeGroupArgs.builder()\n            .key(\"my-attribute-group-key\")\n            .name(Map.of(\"en\", \"my-attribute-group-name\"))\n            .description(Map.of(\"en\", \"my-attribute-group-description\"))\n            .attributes(            \n                AttributeGroupAttributeArgs.builder()\n                    .key(\"attribute-key-1\")\n                    .build(),\n                AttributeGroupAttributeArgs.builder()\n                    .key(\"attribute-key-2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-attribute-group:\n    type: commercetools:AttributeGroup\n    properties:\n      key: my-attribute-group-key\n      name:\n        en: my-attribute-group-name\n      description:\n        en: my-attribute-group-description\n      attributes:\n        - key: attribute-key-1\n        - key: attribute-key-2\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"attributes":{"description":"Attributes with unique values.\n","items":{"$ref":"#/types/commercetools:index%2FAttributeGroupAttribute:AttributeGroupAttribute"},"type":"array"},"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"key":{"description":"User-defined unique identifier of the AttributeGroup.\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"}},"properties":{"attributes":{"description":"Attributes with unique values.\n","items":{"$ref":"#/types/commercetools:index%2FAttributeGroupAttribute:AttributeGroupAttribute"},"type":"array"},"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"key":{"description":"User-defined unique identifier of the AttributeGroup.\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"},"version":{"description":"Current version of the AttributeGroup.\n","type":"number"}},"required":["name","version"],"requiredInputs":["name"],"stateInputs":{"description":"Input properties used for looking up and filtering AttributeGroup resources.\n","properties":{"attributes":{"description":"Attributes with unique values.\n","items":{"$ref":"#/types/commercetools:index%2FAttributeGroupAttribute:AttributeGroupAttribute"},"type":"array"},"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"key":{"description":"User-defined unique identifier of the AttributeGroup.\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"},"version":{"description":"Current version of the AttributeGroup.\n","type":"number"}},"type":"object"},"type":"object"},"commercetools:index/businessUnitCompany:BusinessUnitCompany":{"description":"Business Unit type to represent the top level of a business. Contains specific fields and values that differentiate a company from the generic business unit.\n\nSee also the [Business Unit API Documentation](https://docs.commercetools.com/api/projects/business-units)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_store = new commercetools.Store(\"my-store\", {\n    key: \"my-store\",\n    name: {\n        \"en-US\": \"My store\",\n    },\n    countries: [\n        \"NL\",\n        \"BE\",\n    ],\n    languages: [\"en-GB\"],\n});\nconst my_type = new commercetools.Type(\"my-type\", {\n    key: \"my-type\",\n    name: {\n        en: \"My type\",\n        nl: \"Mijn type\",\n    },\n    resourceTypeIds: [\"business-unit\"],\n    fields: [{\n        name: \"my-field\",\n        label: {\n            en: \"My field\",\n            nl: \"Mijn veld\",\n        },\n        type: {\n            name: \"String\",\n        },\n    }],\n});\nconst my_company = new commercetools.BusinessUnitCompany(\"my-company\", {\n    key: \"my-company\",\n    name: \"My company\",\n    contactEmail: \"main@my-company.com\",\n    addresses: [\n        {\n            key: \"my-company-address-1\",\n            country: \"NL\",\n            state: \"Noord-Holland\",\n            city: \"Amsterdam\",\n            streetName: \"Keizersgracht\",\n            streetNumber: \"3\",\n            additionalStreetInfo: \"4th floor\",\n            postalCode: \"1015 CJ\",\n        },\n        {\n            key: \"my-company-address-2\",\n            country: \"NL\",\n            state: \"Utrecht\",\n            city: \"Utrecht\",\n            streetName: \"Oudegracht\",\n            streetNumber: \"1\",\n            postalCode: \"3511 AA\",\n            additionalStreetInfo: \"Main floor\",\n        },\n    ],\n    stores: [{\n        key: my_store.key,\n    }],\n    billingAddressKeys: [\"my-company-address-1\"],\n    shippingAddressKeys: [\n        \"my-company-address-1\",\n        \"my-company-address-2\",\n    ],\n    defaultBillingAddressKey: \"my-company-address-1\",\n    defaultShippingAddressKey: \"my-company-address-1\",\n    custom: {\n        typeId: my_type.typeId,\n        fields: {\n            my_field: \"My value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_store = commercetools.Store(\"my-store\",\n    key=\"my-store\",\n    name={\n        \"en-US\": \"My store\",\n    },\n    countries=[\n        \"NL\",\n        \"BE\",\n    ],\n    languages=[\"en-GB\"])\nmy_type = commercetools.Type(\"my-type\",\n    key=\"my-type\",\n    name={\n        \"en\": \"My type\",\n        \"nl\": \"Mijn type\",\n    },\n    resource_type_ids=[\"business-unit\"],\n    fields=[{\n        \"name\": \"my-field\",\n        \"label\": {\n            \"en\": \"My field\",\n            \"nl\": \"Mijn veld\",\n        },\n        \"type\": {\n            \"name\": \"String\",\n        },\n    }])\nmy_company = commercetools.BusinessUnitCompany(\"my-company\",\n    key=\"my-company\",\n    name=\"My company\",\n    contact_email=\"main@my-company.com\",\n    addresses=[\n        {\n            \"key\": \"my-company-address-1\",\n            \"country\": \"NL\",\n            \"state\": \"Noord-Holland\",\n            \"city\": \"Amsterdam\",\n            \"street_name\": \"Keizersgracht\",\n            \"street_number\": \"3\",\n            \"additional_street_info\": \"4th floor\",\n            \"postal_code\": \"1015 CJ\",\n        },\n        {\n            \"key\": \"my-company-address-2\",\n            \"country\": \"NL\",\n            \"state\": \"Utrecht\",\n            \"city\": \"Utrecht\",\n            \"street_name\": \"Oudegracht\",\n            \"street_number\": \"1\",\n            \"postal_code\": \"3511 AA\",\n            \"additional_street_info\": \"Main floor\",\n        },\n    ],\n    stores=[{\n        \"key\": my_store.key,\n    }],\n    billing_address_keys=[\"my-company-address-1\"],\n    shipping_address_keys=[\n        \"my-company-address-1\",\n        \"my-company-address-2\",\n    ],\n    default_billing_address_key=\"my-company-address-1\",\n    default_shipping_address_key=\"my-company-address-1\",\n    custom={\n        \"type_id\": my_type.type_id,\n        \"fields\": {\n            \"my_field\": \"My value\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_store = new Commercetools.Store(\"my-store\", new()\n    {\n        Key = \"my-store\",\n        Name = \n        {\n            { \"en-US\", \"My store\" },\n        },\n        Countries = new[]\n        {\n            \"NL\",\n            \"BE\",\n        },\n        Languages = new[]\n        {\n            \"en-GB\",\n        },\n    });\n\n    var my_type = new Commercetools.Type(\"my-type\", new()\n    {\n        Key = \"my-type\",\n        Name = \n        {\n            { \"en\", \"My type\" },\n            { \"nl\", \"Mijn type\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"business-unit\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"my-field\",\n                Label = \n                {\n                    { \"en\", \"My field\" },\n                    { \"nl\", \"Mijn veld\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n        },\n    });\n\n    var my_company = new Commercetools.BusinessUnitCompany(\"my-company\", new()\n    {\n        Key = \"my-company\",\n        Name = \"My company\",\n        ContactEmail = \"main@my-company.com\",\n        Addresses = new[]\n        {\n            new Commercetools.Inputs.BusinessUnitCompanyAddressArgs\n            {\n                Key = \"my-company-address-1\",\n                Country = \"NL\",\n                State = \"Noord-Holland\",\n                City = \"Amsterdam\",\n                StreetName = \"Keizersgracht\",\n                StreetNumber = \"3\",\n                AdditionalStreetInfo = \"4th floor\",\n                PostalCode = \"1015 CJ\",\n            },\n            new Commercetools.Inputs.BusinessUnitCompanyAddressArgs\n            {\n                Key = \"my-company-address-2\",\n                Country = \"NL\",\n                State = \"Utrecht\",\n                City = \"Utrecht\",\n                StreetName = \"Oudegracht\",\n                StreetNumber = \"1\",\n                PostalCode = \"3511 AA\",\n                AdditionalStreetInfo = \"Main floor\",\n            },\n        },\n        Stores = new[]\n        {\n            new Commercetools.Inputs.BusinessUnitCompanyStoreArgs\n            {\n                Key = my_store.Key,\n            },\n        },\n        BillingAddressKeys = new[]\n        {\n            \"my-company-address-1\",\n        },\n        ShippingAddressKeys = new[]\n        {\n            \"my-company-address-1\",\n            \"my-company-address-2\",\n        },\n        DefaultBillingAddressKey = \"my-company-address-1\",\n        DefaultShippingAddressKey = \"my-company-address-1\",\n        Custom = new Commercetools.Inputs.BusinessUnitCompanyCustomArgs\n        {\n            TypeId = my_type.TypeId,\n            Fields = \n            {\n                { \"my_field\", \"My value\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_store, err := commercetools.NewStore(ctx, \"my-store\", &commercetools.StoreArgs{\n\t\t\tKey: pulumi.String(\"my-store\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"My store\"),\n\t\t\t},\n\t\t\tCountries: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"NL\"),\n\t\t\t\tpulumi.String(\"BE\"),\n\t\t\t},\n\t\t\tLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en-GB\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_type, err := commercetools.NewType(ctx, \"my-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My type\"),\n\t\t\t\t\"nl\": pulumi.String(\"Mijn type\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"business-unit\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"my-field\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"My field\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Mijn veld\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\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 = commercetools.NewBusinessUnitCompany(ctx, \"my-company\", &commercetools.BusinessUnitCompanyArgs{\n\t\t\tKey:          pulumi.String(\"my-company\"),\n\t\t\tName:         pulumi.String(\"My company\"),\n\t\t\tContactEmail: pulumi.String(\"main@my-company.com\"),\n\t\t\tAddresses: commercetools.BusinessUnitCompanyAddressArray{\n\t\t\t\t&commercetools.BusinessUnitCompanyAddressArgs{\n\t\t\t\t\tKey:                  pulumi.String(\"my-company-address-1\"),\n\t\t\t\t\tCountry:              pulumi.String(\"NL\"),\n\t\t\t\t\tState:                pulumi.String(\"Noord-Holland\"),\n\t\t\t\t\tCity:                 pulumi.String(\"Amsterdam\"),\n\t\t\t\t\tStreetName:           pulumi.String(\"Keizersgracht\"),\n\t\t\t\t\tStreetNumber:         pulumi.String(\"3\"),\n\t\t\t\t\tAdditionalStreetInfo: pulumi.String(\"4th floor\"),\n\t\t\t\t\tPostalCode:           pulumi.String(\"1015 CJ\"),\n\t\t\t\t},\n\t\t\t\t&commercetools.BusinessUnitCompanyAddressArgs{\n\t\t\t\t\tKey:                  pulumi.String(\"my-company-address-2\"),\n\t\t\t\t\tCountry:              pulumi.String(\"NL\"),\n\t\t\t\t\tState:                pulumi.String(\"Utrecht\"),\n\t\t\t\t\tCity:                 pulumi.String(\"Utrecht\"),\n\t\t\t\t\tStreetName:           pulumi.String(\"Oudegracht\"),\n\t\t\t\t\tStreetNumber:         pulumi.String(\"1\"),\n\t\t\t\t\tPostalCode:           pulumi.String(\"3511 AA\"),\n\t\t\t\t\tAdditionalStreetInfo: pulumi.String(\"Main floor\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStores: commercetools.BusinessUnitCompanyStoreArray{\n\t\t\t\t&commercetools.BusinessUnitCompanyStoreArgs{\n\t\t\t\t\tKey: my_store.Key,\n\t\t\t\t},\n\t\t\t},\n\t\t\tBillingAddressKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-company-address-1\"),\n\t\t\t},\n\t\t\tShippingAddressKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-company-address-1\"),\n\t\t\t\tpulumi.String(\"my-company-address-2\"),\n\t\t\t},\n\t\t\tDefaultBillingAddressKey:  pulumi.String(\"my-company-address-1\"),\n\t\t\tDefaultShippingAddressKey: pulumi.String(\"my-company-address-1\"),\n\t\t\tCustom: &commercetools.BusinessUnitCompanyCustomArgs{\n\t\t\t\tTypeId: my_type.TypeId,\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my_field\": pulumi.String(\"My value\"),\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.commercetools.Store;\nimport com.pulumi.commercetools.StoreArgs;\nimport com.pulumi.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.BusinessUnitCompany;\nimport com.pulumi.commercetools.BusinessUnitCompanyArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitCompanyAddressArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitCompanyStoreArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitCompanyCustomArgs;\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 my_store = new Store(\"my-store\", StoreArgs.builder()\n            .key(\"my-store\")\n            .name(Map.of(\"en-US\", \"My store\"))\n            .countries(            \n                \"NL\",\n                \"BE\")\n            .languages(\"en-GB\")\n            .build());\n\n        var my_type = new Type(\"my-type\", TypeArgs.builder()\n            .key(\"my-type\")\n            .name(Map.ofEntries(\n                Map.entry(\"en\", \"My type\"),\n                Map.entry(\"nl\", \"Mijn type\")\n            ))\n            .resourceTypeIds(\"business-unit\")\n            .fields(TypeFieldArgs.builder()\n                .name(\"my-field\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"My field\"),\n                    Map.entry(\"nl\", \"Mijn veld\")\n                ))\n                .type(TypeFieldTypeArgs.builder()\n                    .name(\"String\")\n                    .build())\n                .build())\n            .build());\n\n        var my_company = new BusinessUnitCompany(\"my-company\", BusinessUnitCompanyArgs.builder()\n            .key(\"my-company\")\n            .name(\"My company\")\n            .contactEmail(\"main@my-company.com\")\n            .addresses(            \n                BusinessUnitCompanyAddressArgs.builder()\n                    .key(\"my-company-address-1\")\n                    .country(\"NL\")\n                    .state(\"Noord-Holland\")\n                    .city(\"Amsterdam\")\n                    .streetName(\"Keizersgracht\")\n                    .streetNumber(\"3\")\n                    .additionalStreetInfo(\"4th floor\")\n                    .postalCode(\"1015 CJ\")\n                    .build(),\n                BusinessUnitCompanyAddressArgs.builder()\n                    .key(\"my-company-address-2\")\n                    .country(\"NL\")\n                    .state(\"Utrecht\")\n                    .city(\"Utrecht\")\n                    .streetName(\"Oudegracht\")\n                    .streetNumber(\"1\")\n                    .postalCode(\"3511 AA\")\n                    .additionalStreetInfo(\"Main floor\")\n                    .build())\n            .stores(BusinessUnitCompanyStoreArgs.builder()\n                .key(my_store.key())\n                .build())\n            .billingAddressKeys(\"my-company-address-1\")\n            .shippingAddressKeys(            \n                \"my-company-address-1\",\n                \"my-company-address-2\")\n            .defaultBillingAddressKey(\"my-company-address-1\")\n            .defaultShippingAddressKey(\"my-company-address-1\")\n            .custom(BusinessUnitCompanyCustomArgs.builder()\n                .typeId(my_type.typeId())\n                .fields(Map.of(\"my_field\", \"My value\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-store:\n    type: commercetools:Store\n    properties:\n      key: my-store\n      name:\n        en-US: My store\n      countries:\n        - NL\n        - BE\n      languages:\n        - en-GB\n  my-type:\n    type: commercetools:Type\n    properties:\n      key: my-type\n      name:\n        en: My type\n        nl: Mijn type\n      resourceTypeIds:\n        - business-unit\n      fields:\n        - name: my-field\n          label:\n            en: My field\n            nl: Mijn veld\n          type:\n            name: String\n  my-company:\n    type: commercetools:BusinessUnitCompany\n    properties:\n      key: my-company\n      name: My company\n      contactEmail: main@my-company.com\n      addresses:\n        - key: my-company-address-1\n          country: NL\n          state: Noord-Holland\n          city: Amsterdam\n          streetName: Keizersgracht\n          streetNumber: '3'\n          additionalStreetInfo: 4th floor\n          postalCode: 1015 CJ\n        - key: my-company-address-2\n          country: NL\n          state: Utrecht\n          city: Utrecht\n          streetName: Oudegracht\n          streetNumber: '1'\n          postalCode: 3511 AA\n          additionalStreetInfo: Main floor\n      stores:\n        - key: ${[\"my-store\"].key}\n      billingAddressKeys:\n        - my-company-address-1\n      shippingAddressKeys:\n        - my-company-address-1\n        - my-company-address-2\n      defaultBillingAddressKey: my-company-address-1\n      defaultShippingAddressKey: my-company-address-1\n      custom:\n        typeId: ${[\"my-type\"].typeId}\n        fields:\n          my_field: My value\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyAddress:BusinessUnitCompanyAddress"},"type":"array"},"billingAddressKeys":{"description":"Indexes of entries in addresses to set as billing addresses. The billingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the company.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyCustom:BusinessUnitCompanyCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this company.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Index of the entry in addresses to set as the default billing address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Index of the entry in addresses to set as the default shipping address.\n","type":"string"},"key":{"description":"User-defined unique key for the company. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the company.\n","type":"string"},"shippingAddressKeys":{"description":"Indexes of entries in addresses to set as shipping addresses. The shippingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the company.\n","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyStore:BusinessUnitCompanyStore"},"type":"array"}},"properties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyAddress:BusinessUnitCompanyAddress"},"type":"array"},"billingAddressKeys":{"description":"Indexes of entries in addresses to set as billing addresses. The billingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the company.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyCustom:BusinessUnitCompanyCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this company.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Index of the entry in addresses to set as the default billing address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Index of the entry in addresses to set as the default shipping address.\n","type":"string"},"key":{"description":"User-defined unique key for the company. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the company.\n","type":"string"},"shippingAddressKeys":{"description":"Indexes of entries in addresses to set as shipping addresses. The shippingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the company.\n","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyStore:BusinessUnitCompanyStore"},"type":"array"},"version":{"description":"The current version of the company.","type":"number"}},"required":["key","name","status","version"],"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering BusinessUnitCompany resources.\n","properties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyAddress:BusinessUnitCompanyAddress"},"type":"array"},"billingAddressKeys":{"description":"Indexes of entries in addresses to set as billing addresses. The billingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the company.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyCustom:BusinessUnitCompanyCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this company.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Index of the entry in addresses to set as the default billing address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Index of the entry in addresses to set as the default shipping address.\n","type":"string"},"key":{"description":"User-defined unique key for the company. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the company.\n","type":"string"},"shippingAddressKeys":{"description":"Indexes of entries in addresses to set as shipping addresses. The shippingAddressIds of the [Customer](https://docs.commercetools.com/api/projects/customers) will be replaced by these addresses.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the company.\n","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitCompanyStore:BusinessUnitCompanyStore"},"type":"array"},"version":{"description":"The current version of the company.","type":"number"}},"type":"object"},"type":"object"},"commercetools:index/businessUnitDivision:BusinessUnitDivision":{"description":"business unit type to represent the top level of a business. Contains specific fields and values that differentiate a Division from the generic BusinessUnit.\n\nSee also the [Business Unit API Documentation](https://docs.commercetools.com/api/projects/business-units)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_store = new commercetools.Store(\"my-store\", {\n    key: \"my-store\",\n    name: {\n        \"en-US\": \"My store\",\n    },\n    countries: [\n        \"NL\",\n        \"BE\",\n    ],\n    languages: [\"en-GB\"],\n});\nconst my_type = new commercetools.Type(\"my-type\", {\n    key: \"my-type\",\n    name: {\n        en: \"My type\",\n        nl: \"Mijn type\",\n    },\n    resourceTypeIds: [\"business-unit\"],\n    fields: [{\n        name: \"my-field\",\n        label: {\n            en: \"My field\",\n            nl: \"Mijn veld\",\n        },\n        type: {\n            name: \"String\",\n        },\n    }],\n});\nconst my_company = new commercetools.BusinessUnitCompany(\"my-company\", {\n    key: \"my-company\",\n    name: \"My company\",\n    contactEmail: \"main@my-company.com\",\n});\nconst my_division = new commercetools.BusinessUnitDivision(\"my-division\", {\n    key: \"my-division\",\n    name: \"My division\",\n    contactEmail: \"my-division@my-company.com\",\n    storeMode: \"Explicit\",\n    status: \"Active\",\n    associateMode: \"Explicit\",\n    approvalRuleMode: \"Explicit\",\n    parentUnit: {\n        key: my_company.key,\n    },\n    stores: [{\n        key: my_store.key,\n    }],\n    addresses: [\n        {\n            key: \"my-div-address-1\",\n            country: \"NL\",\n            state: \"Utrecht\",\n            city: \"Utrecht\",\n            streetName: \"Oudegracht\",\n            streetNumber: \"1\",\n            postalCode: \"3511 AA\",\n            additionalStreetInfo: \"Main floor\",\n        },\n        {\n            key: \"my-div-address-2\",\n            country: \"NL\",\n            state: \"Zuid-Holland\",\n            city: \"Leiden\",\n            streetName: \"Breestraat\",\n            streetNumber: \"1\",\n            postalCode: \"2311 CH\",\n        },\n    ],\n    billingAddressKeys: [\"my-div-address-1\"],\n    shippingAddressKeys: [\n        \"my-div-address-1\",\n        \"my-div-address-2\",\n    ],\n    defaultBillingAddressKey: \"my-div-address-1\",\n    defaultShippingAddressKey: \"my-div-address-1\",\n    custom: {\n        typeId: my_type.typeId,\n        fields: {\n            my_field: \"My value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_store = commercetools.Store(\"my-store\",\n    key=\"my-store\",\n    name={\n        \"en-US\": \"My store\",\n    },\n    countries=[\n        \"NL\",\n        \"BE\",\n    ],\n    languages=[\"en-GB\"])\nmy_type = commercetools.Type(\"my-type\",\n    key=\"my-type\",\n    name={\n        \"en\": \"My type\",\n        \"nl\": \"Mijn type\",\n    },\n    resource_type_ids=[\"business-unit\"],\n    fields=[{\n        \"name\": \"my-field\",\n        \"label\": {\n            \"en\": \"My field\",\n            \"nl\": \"Mijn veld\",\n        },\n        \"type\": {\n            \"name\": \"String\",\n        },\n    }])\nmy_company = commercetools.BusinessUnitCompany(\"my-company\",\n    key=\"my-company\",\n    name=\"My company\",\n    contact_email=\"main@my-company.com\")\nmy_division = commercetools.BusinessUnitDivision(\"my-division\",\n    key=\"my-division\",\n    name=\"My division\",\n    contact_email=\"my-division@my-company.com\",\n    store_mode=\"Explicit\",\n    status=\"Active\",\n    associate_mode=\"Explicit\",\n    approval_rule_mode=\"Explicit\",\n    parent_unit={\n        \"key\": my_company.key,\n    },\n    stores=[{\n        \"key\": my_store.key,\n    }],\n    addresses=[\n        {\n            \"key\": \"my-div-address-1\",\n            \"country\": \"NL\",\n            \"state\": \"Utrecht\",\n            \"city\": \"Utrecht\",\n            \"street_name\": \"Oudegracht\",\n            \"street_number\": \"1\",\n            \"postal_code\": \"3511 AA\",\n            \"additional_street_info\": \"Main floor\",\n        },\n        {\n            \"key\": \"my-div-address-2\",\n            \"country\": \"NL\",\n            \"state\": \"Zuid-Holland\",\n            \"city\": \"Leiden\",\n            \"street_name\": \"Breestraat\",\n            \"street_number\": \"1\",\n            \"postal_code\": \"2311 CH\",\n        },\n    ],\n    billing_address_keys=[\"my-div-address-1\"],\n    shipping_address_keys=[\n        \"my-div-address-1\",\n        \"my-div-address-2\",\n    ],\n    default_billing_address_key=\"my-div-address-1\",\n    default_shipping_address_key=\"my-div-address-1\",\n    custom={\n        \"type_id\": my_type.type_id,\n        \"fields\": {\n            \"my_field\": \"My value\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_store = new Commercetools.Store(\"my-store\", new()\n    {\n        Key = \"my-store\",\n        Name = \n        {\n            { \"en-US\", \"My store\" },\n        },\n        Countries = new[]\n        {\n            \"NL\",\n            \"BE\",\n        },\n        Languages = new[]\n        {\n            \"en-GB\",\n        },\n    });\n\n    var my_type = new Commercetools.Type(\"my-type\", new()\n    {\n        Key = \"my-type\",\n        Name = \n        {\n            { \"en\", \"My type\" },\n            { \"nl\", \"Mijn type\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"business-unit\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"my-field\",\n                Label = \n                {\n                    { \"en\", \"My field\" },\n                    { \"nl\", \"Mijn veld\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n        },\n    });\n\n    var my_company = new Commercetools.BusinessUnitCompany(\"my-company\", new()\n    {\n        Key = \"my-company\",\n        Name = \"My company\",\n        ContactEmail = \"main@my-company.com\",\n    });\n\n    var my_division = new Commercetools.BusinessUnitDivision(\"my-division\", new()\n    {\n        Key = \"my-division\",\n        Name = \"My division\",\n        ContactEmail = \"my-division@my-company.com\",\n        StoreMode = \"Explicit\",\n        Status = \"Active\",\n        AssociateMode = \"Explicit\",\n        ApprovalRuleMode = \"Explicit\",\n        ParentUnit = new Commercetools.Inputs.BusinessUnitDivisionParentUnitArgs\n        {\n            Key = my_company.Key,\n        },\n        Stores = new[]\n        {\n            new Commercetools.Inputs.BusinessUnitDivisionStoreArgs\n            {\n                Key = my_store.Key,\n            },\n        },\n        Addresses = new[]\n        {\n            new Commercetools.Inputs.BusinessUnitDivisionAddressArgs\n            {\n                Key = \"my-div-address-1\",\n                Country = \"NL\",\n                State = \"Utrecht\",\n                City = \"Utrecht\",\n                StreetName = \"Oudegracht\",\n                StreetNumber = \"1\",\n                PostalCode = \"3511 AA\",\n                AdditionalStreetInfo = \"Main floor\",\n            },\n            new Commercetools.Inputs.BusinessUnitDivisionAddressArgs\n            {\n                Key = \"my-div-address-2\",\n                Country = \"NL\",\n                State = \"Zuid-Holland\",\n                City = \"Leiden\",\n                StreetName = \"Breestraat\",\n                StreetNumber = \"1\",\n                PostalCode = \"2311 CH\",\n            },\n        },\n        BillingAddressKeys = new[]\n        {\n            \"my-div-address-1\",\n        },\n        ShippingAddressKeys = new[]\n        {\n            \"my-div-address-1\",\n            \"my-div-address-2\",\n        },\n        DefaultBillingAddressKey = \"my-div-address-1\",\n        DefaultShippingAddressKey = \"my-div-address-1\",\n        Custom = new Commercetools.Inputs.BusinessUnitDivisionCustomArgs\n        {\n            TypeId = my_type.TypeId,\n            Fields = \n            {\n                { \"my_field\", \"My value\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_store, err := commercetools.NewStore(ctx, \"my-store\", &commercetools.StoreArgs{\n\t\t\tKey: pulumi.String(\"my-store\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"My store\"),\n\t\t\t},\n\t\t\tCountries: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"NL\"),\n\t\t\t\tpulumi.String(\"BE\"),\n\t\t\t},\n\t\t\tLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en-GB\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_type, err := commercetools.NewType(ctx, \"my-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My type\"),\n\t\t\t\t\"nl\": pulumi.String(\"Mijn type\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"business-unit\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"my-field\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"My field\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Mijn veld\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\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\tmy_company, err := commercetools.NewBusinessUnitCompany(ctx, \"my-company\", &commercetools.BusinessUnitCompanyArgs{\n\t\t\tKey:          pulumi.String(\"my-company\"),\n\t\t\tName:         pulumi.String(\"My company\"),\n\t\t\tContactEmail: pulumi.String(\"main@my-company.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewBusinessUnitDivision(ctx, \"my-division\", &commercetools.BusinessUnitDivisionArgs{\n\t\t\tKey:              pulumi.String(\"my-division\"),\n\t\t\tName:             pulumi.String(\"My division\"),\n\t\t\tContactEmail:     pulumi.String(\"my-division@my-company.com\"),\n\t\t\tStoreMode:        pulumi.String(\"Explicit\"),\n\t\t\tStatus:           pulumi.String(\"Active\"),\n\t\t\tAssociateMode:    pulumi.String(\"Explicit\"),\n\t\t\tApprovalRuleMode: pulumi.String(\"Explicit\"),\n\t\t\tParentUnit: &commercetools.BusinessUnitDivisionParentUnitArgs{\n\t\t\t\tKey: my_company.Key,\n\t\t\t},\n\t\t\tStores: commercetools.BusinessUnitDivisionStoreArray{\n\t\t\t\t&commercetools.BusinessUnitDivisionStoreArgs{\n\t\t\t\t\tKey: my_store.Key,\n\t\t\t\t},\n\t\t\t},\n\t\t\tAddresses: commercetools.BusinessUnitDivisionAddressArray{\n\t\t\t\t&commercetools.BusinessUnitDivisionAddressArgs{\n\t\t\t\t\tKey:                  pulumi.String(\"my-div-address-1\"),\n\t\t\t\t\tCountry:              pulumi.String(\"NL\"),\n\t\t\t\t\tState:                pulumi.String(\"Utrecht\"),\n\t\t\t\t\tCity:                 pulumi.String(\"Utrecht\"),\n\t\t\t\t\tStreetName:           pulumi.String(\"Oudegracht\"),\n\t\t\t\t\tStreetNumber:         pulumi.String(\"1\"),\n\t\t\t\t\tPostalCode:           pulumi.String(\"3511 AA\"),\n\t\t\t\t\tAdditionalStreetInfo: pulumi.String(\"Main floor\"),\n\t\t\t\t},\n\t\t\t\t&commercetools.BusinessUnitDivisionAddressArgs{\n\t\t\t\t\tKey:          pulumi.String(\"my-div-address-2\"),\n\t\t\t\t\tCountry:      pulumi.String(\"NL\"),\n\t\t\t\t\tState:        pulumi.String(\"Zuid-Holland\"),\n\t\t\t\t\tCity:         pulumi.String(\"Leiden\"),\n\t\t\t\t\tStreetName:   pulumi.String(\"Breestraat\"),\n\t\t\t\t\tStreetNumber: pulumi.String(\"1\"),\n\t\t\t\t\tPostalCode:   pulumi.String(\"2311 CH\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBillingAddressKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-div-address-1\"),\n\t\t\t},\n\t\t\tShippingAddressKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-div-address-1\"),\n\t\t\t\tpulumi.String(\"my-div-address-2\"),\n\t\t\t},\n\t\t\tDefaultBillingAddressKey:  pulumi.String(\"my-div-address-1\"),\n\t\t\tDefaultShippingAddressKey: pulumi.String(\"my-div-address-1\"),\n\t\t\tCustom: &commercetools.BusinessUnitDivisionCustomArgs{\n\t\t\t\tTypeId: my_type.TypeId,\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my_field\": pulumi.String(\"My value\"),\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.commercetools.Store;\nimport com.pulumi.commercetools.StoreArgs;\nimport com.pulumi.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.BusinessUnitCompany;\nimport com.pulumi.commercetools.BusinessUnitCompanyArgs;\nimport com.pulumi.commercetools.BusinessUnitDivision;\nimport com.pulumi.commercetools.BusinessUnitDivisionArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitDivisionParentUnitArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitDivisionStoreArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitDivisionAddressArgs;\nimport com.pulumi.commercetools.inputs.BusinessUnitDivisionCustomArgs;\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 my_store = new Store(\"my-store\", StoreArgs.builder()\n            .key(\"my-store\")\n            .name(Map.of(\"en-US\", \"My store\"))\n            .countries(            \n                \"NL\",\n                \"BE\")\n            .languages(\"en-GB\")\n            .build());\n\n        var my_type = new Type(\"my-type\", TypeArgs.builder()\n            .key(\"my-type\")\n            .name(Map.ofEntries(\n                Map.entry(\"en\", \"My type\"),\n                Map.entry(\"nl\", \"Mijn type\")\n            ))\n            .resourceTypeIds(\"business-unit\")\n            .fields(TypeFieldArgs.builder()\n                .name(\"my-field\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"My field\"),\n                    Map.entry(\"nl\", \"Mijn veld\")\n                ))\n                .type(TypeFieldTypeArgs.builder()\n                    .name(\"String\")\n                    .build())\n                .build())\n            .build());\n\n        var my_company = new BusinessUnitCompany(\"my-company\", BusinessUnitCompanyArgs.builder()\n            .key(\"my-company\")\n            .name(\"My company\")\n            .contactEmail(\"main@my-company.com\")\n            .build());\n\n        var my_division = new BusinessUnitDivision(\"my-division\", BusinessUnitDivisionArgs.builder()\n            .key(\"my-division\")\n            .name(\"My division\")\n            .contactEmail(\"my-division@my-company.com\")\n            .storeMode(\"Explicit\")\n            .status(\"Active\")\n            .associateMode(\"Explicit\")\n            .approvalRuleMode(\"Explicit\")\n            .parentUnit(BusinessUnitDivisionParentUnitArgs.builder()\n                .key(my_company.key())\n                .build())\n            .stores(BusinessUnitDivisionStoreArgs.builder()\n                .key(my_store.key())\n                .build())\n            .addresses(            \n                BusinessUnitDivisionAddressArgs.builder()\n                    .key(\"my-div-address-1\")\n                    .country(\"NL\")\n                    .state(\"Utrecht\")\n                    .city(\"Utrecht\")\n                    .streetName(\"Oudegracht\")\n                    .streetNumber(\"1\")\n                    .postalCode(\"3511 AA\")\n                    .additionalStreetInfo(\"Main floor\")\n                    .build(),\n                BusinessUnitDivisionAddressArgs.builder()\n                    .key(\"my-div-address-2\")\n                    .country(\"NL\")\n                    .state(\"Zuid-Holland\")\n                    .city(\"Leiden\")\n                    .streetName(\"Breestraat\")\n                    .streetNumber(\"1\")\n                    .postalCode(\"2311 CH\")\n                    .build())\n            .billingAddressKeys(\"my-div-address-1\")\n            .shippingAddressKeys(            \n                \"my-div-address-1\",\n                \"my-div-address-2\")\n            .defaultBillingAddressKey(\"my-div-address-1\")\n            .defaultShippingAddressKey(\"my-div-address-1\")\n            .custom(BusinessUnitDivisionCustomArgs.builder()\n                .typeId(my_type.typeId())\n                .fields(Map.of(\"my_field\", \"My value\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-store:\n    type: commercetools:Store\n    properties:\n      key: my-store\n      name:\n        en-US: My store\n      countries:\n        - NL\n        - BE\n      languages:\n        - en-GB\n  my-type:\n    type: commercetools:Type\n    properties:\n      key: my-type\n      name:\n        en: My type\n        nl: Mijn type\n      resourceTypeIds:\n        - business-unit\n      fields:\n        - name: my-field\n          label:\n            en: My field\n            nl: Mijn veld\n          type:\n            name: String\n  my-company:\n    type: commercetools:BusinessUnitCompany\n    properties:\n      key: my-company\n      name: My company\n      contactEmail: main@my-company.com\n  my-division:\n    type: commercetools:BusinessUnitDivision\n    properties:\n      key: my-division\n      name: My division\n      contactEmail: my-division@my-company.com\n      storeMode: Explicit\n      status: Active\n      associateMode: Explicit\n      approvalRuleMode: Explicit\n      parentUnit:\n        key: ${[\"my-company\"].key}\n      stores:\n        - key: ${[\"my-store\"].key}\n      addresses:\n        - key: my-div-address-1\n          country: NL\n          state: Utrecht\n          city: Utrecht\n          streetName: Oudegracht\n          streetNumber: '1'\n          postalCode: 3511 AA\n          additionalStreetInfo: Main floor\n        - key: my-div-address-2\n          country: NL\n          state: Zuid-Holland\n          city: Leiden\n          streetName: Breestraat\n          streetNumber: '1'\n          postalCode: 2311 CH\n      billingAddressKeys:\n        - my-div-address-1\n      shippingAddressKeys:\n        - my-div-address-1\n        - my-div-address-2\n      defaultBillingAddressKey: my-div-address-1\n      defaultShippingAddressKey: my-div-address-1\n      custom:\n        typeId: ${[\"my-type\"].typeId}\n        fields:\n          my_field: My value\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionAddress:BusinessUnitDivisionAddress"},"type":"array"},"approvalRuleMode":{"description":"Determines whether the business unit can inherit Approval Rules from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"associateMode":{"description":"Determines whether the business unit can inherit Associates from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"billingAddressKeys":{"description":"List of the billing addresses used by the division.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the division.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionCustom:BusinessUnitDivisionCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this division.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Key of the default billing Address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Key of the default shipping Address.\n","type":"string"},"key":{"description":"User-defined unique key for the division. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the division.\n","type":"string"},"parentUnit":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionParentUnit:BusinessUnitDivisionParentUnit","description":"Reference to a parent business unit by its key or id. One of either is required.\n"},"shippingAddressKeys":{"description":"List of the shipping addresses used by the division.\n","items":{"type":"string"},"type":"array"},"status":{"description":"Indicates whether the business unit can be edited and used in [Orders](https://docs.commercetools.com/api/projects/orders). Defaults to `Active`.\n","type":"string"},"storeMode":{"description":"Defines whether the Stores of the business unit are set directly on the business unit or are inherited from a parent. Defaults to `FromParent`","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionStore:BusinessUnitDivisionStore"},"type":"array"}},"properties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionAddress:BusinessUnitDivisionAddress"},"type":"array"},"approvalRuleMode":{"description":"Determines whether the business unit can inherit Approval Rules from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"associateMode":{"description":"Determines whether the business unit can inherit Associates from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"billingAddressKeys":{"description":"List of the billing addresses used by the division.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the division.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionCustom:BusinessUnitDivisionCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this division.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Key of the default billing Address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Key of the default shipping Address.\n","type":"string"},"key":{"description":"User-defined unique key for the division. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the division.\n","type":"string"},"parentUnit":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionParentUnit:BusinessUnitDivisionParentUnit","description":"Reference to a parent business unit by its key or id. One of either is required.\n"},"shippingAddressKeys":{"description":"List of the shipping addresses used by the division.\n","items":{"type":"string"},"type":"array"},"status":{"description":"Indicates whether the business unit can be edited and used in [Orders](https://docs.commercetools.com/api/projects/orders). Defaults to `Active`.\n","type":"string"},"storeMode":{"description":"Defines whether the Stores of the business unit are set directly on the business unit or are inherited from a parent. Defaults to `FromParent`","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionStore:BusinessUnitDivisionStore"},"type":"array"},"version":{"description":"The current version of the division.","type":"number"}},"required":["approvalRuleMode","associateMode","key","name","status","storeMode","version"],"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering BusinessUnitDivision resources.\n","properties":{"addresses":{"description":"Addresses used by the Business Unit.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionAddress:BusinessUnitDivisionAddress"},"type":"array"},"approvalRuleMode":{"description":"Determines whether the business unit can inherit Approval Rules from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"associateMode":{"description":"Determines whether the business unit can inherit Associates from a parent. Defaults to `ExplicitAndFromParent`.\n","type":"string"},"billingAddressKeys":{"description":"List of the billing addresses used by the division.\n","items":{"type":"string"},"type":"array"},"contactEmail":{"description":"The email address of the division.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionCustom:BusinessUnitDivisionCustom","description":"Custom fields for this resource.\n"},"customerGroups":{"description":"List of customerGroups assigned to this division.","items":{"type":"string"},"type":"array"},"defaultBillingAddressKey":{"description":"Key of the default billing Address.\n","type":"string"},"defaultShippingAddressKey":{"description":"Key of the default shipping Address.\n","type":"string"},"key":{"description":"User-defined unique key for the division. Must be unique within the project. Updating this value is not supported.\n","type":"string"},"name":{"description":"The name of the division.\n","type":"string"},"parentUnit":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionParentUnit:BusinessUnitDivisionParentUnit","description":"Reference to a parent business unit by its key or id. One of either is required.\n"},"shippingAddressKeys":{"description":"List of the shipping addresses used by the division.\n","items":{"type":"string"},"type":"array"},"status":{"description":"Indicates whether the business unit can be edited and used in [Orders](https://docs.commercetools.com/api/projects/orders). Defaults to `Active`.\n","type":"string"},"storeMode":{"description":"Defines whether the Stores of the business unit are set directly on the business unit or are inherited from a parent. Defaults to `FromParent`","type":"string"},"stores":{"description":"Sets the Stores the Business Unit is associated with.\n","items":{"$ref":"#/types/commercetools:index%2FBusinessUnitDivisionStore:BusinessUnitDivisionStore"},"type":"array"},"version":{"description":"The current version of the division.","type":"number"}},"type":"object"},"type":"object"},"commercetools:index/cartDiscount:CartDiscount":{"description":"Cart discounts are used to change the prices of different elements within a cart.\n\nSee also the [Cart Discount API Documentation](https://docs.commercetools.com/api/projects/cartDiscounts)\n\n","inputProperties":{"cartDiscountId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCartDiscountCustom:CartDiscountCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"Only active discount can be applied to the cart\n","type":"boolean"},"key":{"description":"User-specific unique identifier for a cart discount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"requiresDiscountCode":{"description":"States whether the discount can only be used in a connection with a [DiscountCode](https://docs.commercetools.com/api/projects/discountCodes#discountcode)\n","type":"boolean"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching cart discounts are applied to a cart in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all cart discounts\n","type":"string"},"stackingMode":{"description":"Specifies whether the application of this discount causes the following discounts to be ignored. Can be either Stacking or StopAfterThisDiscount\n","type":"string"},"stores":{"description":"If a value exists, the Cart Discount applies on Carts having a Store matching any Store defined for this field. If empty, the Cart Discount applies on all Carts, irrespective of a Store. Use store keys as references\n","items":{"type":"string"},"type":"array"},"target":{"$ref":"#/types/commercetools:index%2FCartDiscountTarget:CartDiscountTarget","description":"Empty when the value has type giftLineItem, otherwise a [CartDiscountTarget](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscounttarget)\n"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FCartDiscountValue:CartDiscountValue","description":"Defines the effect the discount will have. [CartDiscountValue](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscountvalue)\n"}},"properties":{"cartDiscountId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCartDiscountCustom:CartDiscountCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"Only active discount can be applied to the cart\n","type":"boolean"},"key":{"description":"User-specific unique identifier for a cart discount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"requiresDiscountCode":{"description":"States whether the discount can only be used in a connection with a [DiscountCode](https://docs.commercetools.com/api/projects/discountCodes#discountcode)\n","type":"boolean"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching cart discounts are applied to a cart in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all cart discounts\n","type":"string"},"stackingMode":{"description":"Specifies whether the application of this discount causes the following discounts to be ignored. Can be either Stacking or StopAfterThisDiscount\n","type":"string"},"stores":{"description":"If a value exists, the Cart Discount applies on Carts having a Store matching any Store defined for this field. If empty, the Cart Discount applies on all Carts, irrespective of a Store. Use store keys as references\n","items":{"type":"string"},"type":"array"},"target":{"$ref":"#/types/commercetools:index%2FCartDiscountTarget:CartDiscountTarget","description":"Empty when the value has type giftLineItem, otherwise a [CartDiscountTarget](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscounttarget)\n"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FCartDiscountValue:CartDiscountValue","description":"Defines the effect the discount will have. [CartDiscountValue](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscountvalue)\n"},"version":{"type":"number"}},"required":["cartDiscountId","name","predicate","sortOrder","value","version"],"requiredInputs":["name","predicate","sortOrder","value"],"stateInputs":{"description":"Input properties used for looking up and filtering CartDiscount resources.\n","properties":{"cartDiscountId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCartDiscountCustom:CartDiscountCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"Only active discount can be applied to the cart\n","type":"boolean"},"key":{"description":"User-specific unique identifier for a cart discount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"requiresDiscountCode":{"description":"States whether the discount can only be used in a connection with a [DiscountCode](https://docs.commercetools.com/api/projects/discountCodes#discountcode)\n","type":"boolean"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching cart discounts are applied to a cart in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all cart discounts\n","type":"string"},"stackingMode":{"description":"Specifies whether the application of this discount causes the following discounts to be ignored. Can be either Stacking or StopAfterThisDiscount\n","type":"string"},"stores":{"description":"If a value exists, the Cart Discount applies on Carts having a Store matching any Store defined for this field. If empty, the Cart Discount applies on all Carts, irrespective of a Store. Use store keys as references\n","items":{"type":"string"},"type":"array"},"target":{"$ref":"#/types/commercetools:index%2FCartDiscountTarget:CartDiscountTarget","description":"Empty when the value has type giftLineItem, otherwise a [CartDiscountTarget](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscounttarget)\n"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FCartDiscountValue:CartDiscountValue","description":"Defines the effect the discount will have. [CartDiscountValue](https://docs.commercetools.com/api/projects/cartDiscounts#cartdiscountvalue)\n"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/category:Category":{"description":"Categories allow you to organize products into hierarchical structures.\n\nAlso see the [Categories HTTP API documentation](https://docs.commercetools.com/api/projects/categories).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_category = new commercetools.Category(\"my-category\", {\n    key: \"my-category-key\",\n    name: {\n        en: \"My category\",\n    },\n    description: {\n        en: \"Standard description\",\n    },\n    slug: {\n        en: \"my_category\",\n    },\n    metaTitle: {\n        en: \"Meta title\",\n    },\n});\nconst my_second_category = new commercetools.Category(\"my-second-category\", {\n    key: \"my-category-key\",\n    name: {\n        en: \"Second category\",\n    },\n    description: {\n        en: \"Standard description\",\n    },\n    parent: my_category.categoryId,\n    slug: {\n        en: \"my_second_category\",\n    },\n    metaTitle: {\n        en: \"Meta title\",\n    },\n    assets: [{\n        key: \"some_key\",\n        name: {\n            en: \"Image name\",\n        },\n        description: {\n            en: \"Image description\",\n        },\n        sources: [{\n            uri: \"https://example.com/test.jpg\",\n            key: \"image\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_category = commercetools.Category(\"my-category\",\n    key=\"my-category-key\",\n    name={\n        \"en\": \"My category\",\n    },\n    description={\n        \"en\": \"Standard description\",\n    },\n    slug={\n        \"en\": \"my_category\",\n    },\n    meta_title={\n        \"en\": \"Meta title\",\n    })\nmy_second_category = commercetools.Category(\"my-second-category\",\n    key=\"my-category-key\",\n    name={\n        \"en\": \"Second category\",\n    },\n    description={\n        \"en\": \"Standard description\",\n    },\n    parent=my_category.category_id,\n    slug={\n        \"en\": \"my_second_category\",\n    },\n    meta_title={\n        \"en\": \"Meta title\",\n    },\n    assets=[{\n        \"key\": \"some_key\",\n        \"name\": {\n            \"en\": \"Image name\",\n        },\n        \"description\": {\n            \"en\": \"Image description\",\n        },\n        \"sources\": [{\n            \"uri\": \"https://example.com/test.jpg\",\n            \"key\": \"image\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_category = new Commercetools.Category(\"my-category\", new()\n    {\n        Key = \"my-category-key\",\n        Name = \n        {\n            { \"en\", \"My category\" },\n        },\n        Description = \n        {\n            { \"en\", \"Standard description\" },\n        },\n        Slug = \n        {\n            { \"en\", \"my_category\" },\n        },\n        MetaTitle = \n        {\n            { \"en\", \"Meta title\" },\n        },\n    });\n\n    var my_second_category = new Commercetools.Category(\"my-second-category\", new()\n    {\n        Key = \"my-category-key\",\n        Name = \n        {\n            { \"en\", \"Second category\" },\n        },\n        Description = \n        {\n            { \"en\", \"Standard description\" },\n        },\n        Parent = my_category.CategoryId,\n        Slug = \n        {\n            { \"en\", \"my_second_category\" },\n        },\n        MetaTitle = \n        {\n            { \"en\", \"Meta title\" },\n        },\n        Assets = new[]\n        {\n            new Commercetools.Inputs.CategoryAssetArgs\n            {\n                Key = \"some_key\",\n                Name = \n                {\n                    { \"en\", \"Image name\" },\n                },\n                Description = \n                {\n                    { \"en\", \"Image description\" },\n                },\n                Sources = new[]\n                {\n                    new Commercetools.Inputs.CategoryAssetSourceArgs\n                    {\n                        Uri = \"https://example.com/test.jpg\",\n                        Key = \"image\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_category, err := commercetools.NewCategory(ctx, \"my-category\", &commercetools.CategoryArgs{\n\t\t\tKey: pulumi.String(\"my-category-key\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My category\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Standard description\"),\n\t\t\t},\n\t\t\tSlug: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"my_category\"),\n\t\t\t},\n\t\t\tMetaTitle: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Meta title\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewCategory(ctx, \"my-second-category\", &commercetools.CategoryArgs{\n\t\t\tKey: pulumi.String(\"my-category-key\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Second category\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Standard description\"),\n\t\t\t},\n\t\t\tParent: my_category.CategoryId,\n\t\t\tSlug: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"my_second_category\"),\n\t\t\t},\n\t\t\tMetaTitle: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Meta title\"),\n\t\t\t},\n\t\t\tAssets: commercetools.CategoryAssetArray{\n\t\t\t\t&commercetools.CategoryAssetArgs{\n\t\t\t\t\tKey: pulumi.String(\"some_key\"),\n\t\t\t\t\tName: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Image name\"),\n\t\t\t\t\t},\n\t\t\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Image description\"),\n\t\t\t\t\t},\n\t\t\t\t\tSources: commercetools.CategoryAssetSourceArray{\n\t\t\t\t\t\t&commercetools.CategoryAssetSourceArgs{\n\t\t\t\t\t\t\tUri: pulumi.String(\"https://example.com/test.jpg\"),\n\t\t\t\t\t\t\tKey: pulumi.String(\"image\"),\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.commercetools.Category;\nimport com.pulumi.commercetools.CategoryArgs;\nimport com.pulumi.commercetools.inputs.CategoryAssetArgs;\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 my_category = new Category(\"my-category\", CategoryArgs.builder()\n            .key(\"my-category-key\")\n            .name(Map.of(\"en\", \"My category\"))\n            .description(Map.of(\"en\", \"Standard description\"))\n            .slug(Map.of(\"en\", \"my_category\"))\n            .metaTitle(Map.of(\"en\", \"Meta title\"))\n            .build());\n\n        var my_second_category = new Category(\"my-second-category\", CategoryArgs.builder()\n            .key(\"my-category-key\")\n            .name(Map.of(\"en\", \"Second category\"))\n            .description(Map.of(\"en\", \"Standard description\"))\n            .parent(my_category.categoryId())\n            .slug(Map.of(\"en\", \"my_second_category\"))\n            .metaTitle(Map.of(\"en\", \"Meta title\"))\n            .assets(CategoryAssetArgs.builder()\n                .key(\"some_key\")\n                .name(Map.of(\"en\", \"Image name\"))\n                .description(Map.of(\"en\", \"Image description\"))\n                .sources(CategoryAssetSourceArgs.builder()\n                    .uri(\"https://example.com/test.jpg\")\n                    .key(\"image\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-category:\n    type: commercetools:Category\n    properties:\n      key: my-category-key\n      name:\n        en: My category\n      description:\n        en: Standard description\n      slug:\n        en: my_category\n      metaTitle:\n        en: Meta title\n  my-second-category:\n    type: commercetools:Category\n    properties:\n      key: my-category-key\n      name:\n        en: Second category\n      description:\n        en: Standard description\n      parent: ${[\"my-category\"].categoryId}\n      slug:\n        en: my_second_category\n      metaTitle:\n        en: Meta title\n      assets:\n        - key: some_key\n          name:\n            en: Image name\n          description:\n            en: Image description\n          sources:\n            - uri: https://example.com/test.jpg\n              key: image\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"assets":{"description":"Can be used to store images, icons or movies related to this category\n","items":{"$ref":"#/types/commercetools:index%2FCategoryAsset:CategoryAsset"},"type":"array"},"categoryId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCategoryCustom:CategoryCustom"},"description":{"additionalProperties":{"type":"string"},"type":"object"},"externalId":{"type":"string"},"key":{"description":"Category-specific unique identifier. Must be unique across a project\n","type":"string"},"metaDescription":{"additionalProperties":{"type":"string"},"type":"object"},"metaKeywords":{"additionalProperties":{"type":"string"},"type":"object"},"metaTitle":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"additionalProperties":{"type":"string"},"type":"object"},"orderHint":{"description":"An attribute as base for a custom category order in one level, filled with random value when left empty\n","type":"string"},"parent":{"description":"A category that is the parent of this category in the category tree\n","type":"string"},"slug":{"additionalProperties":{"type":"string"},"description":"Human readable identifiers, needs to be unique\n","type":"object"}},"properties":{"assets":{"description":"Can be used to store images, icons or movies related to this category\n","items":{"$ref":"#/types/commercetools:index%2FCategoryAsset:CategoryAsset"},"type":"array"},"categoryId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCategoryCustom:CategoryCustom"},"description":{"additionalProperties":{"type":"string"},"type":"object"},"externalId":{"type":"string"},"key":{"description":"Category-specific unique identifier. Must be unique across a project\n","type":"string"},"metaDescription":{"additionalProperties":{"type":"string"},"type":"object"},"metaKeywords":{"additionalProperties":{"type":"string"},"type":"object"},"metaTitle":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"additionalProperties":{"type":"string"},"type":"object"},"orderHint":{"description":"An attribute as base for a custom category order in one level, filled with random value when left empty\n","type":"string"},"parent":{"description":"A category that is the parent of this category in the category tree\n","type":"string"},"slug":{"additionalProperties":{"type":"string"},"description":"Human readable identifiers, needs to be unique\n","type":"object"},"version":{"type":"number"}},"required":["categoryId","name","slug","version"],"requiredInputs":["name","slug"],"stateInputs":{"description":"Input properties used for looking up and filtering Category resources.\n","properties":{"assets":{"description":"Can be used to store images, icons or movies related to this category\n","items":{"$ref":"#/types/commercetools:index%2FCategoryAsset:CategoryAsset"},"type":"array"},"categoryId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FCategoryCustom:CategoryCustom"},"description":{"additionalProperties":{"type":"string"},"type":"object"},"externalId":{"type":"string"},"key":{"description":"Category-specific unique identifier. Must be unique across a project\n","type":"string"},"metaDescription":{"additionalProperties":{"type":"string"},"type":"object"},"metaKeywords":{"additionalProperties":{"type":"string"},"type":"object"},"metaTitle":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"additionalProperties":{"type":"string"},"type":"object"},"orderHint":{"description":"An attribute as base for a custom category order in one level, filled with random value when left empty\n","type":"string"},"parent":{"description":"A category that is the parent of this category in the category tree\n","type":"string"},"slug":{"additionalProperties":{"type":"string"},"description":"Human readable identifiers, needs to be unique\n","type":"object"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/channel:Channel":{"description":"Channels represent a source or destination of different entities. They can be used to model warehouses or stores.\n\nSee also the [Channels API Documentation](https://docs.commercetools.com/api/projects/channels)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_channel = new commercetools.Channel(\"my-channel\", {\n    key: \"my-channel-key\",\n    roles: [\"ProductDistribution\"],\n    name: {\n        \"nl-NL\": \"Channel\",\n    },\n    description: {\n        \"nl-NL\": \"Channel\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_channel = commercetools.Channel(\"my-channel\",\n    key=\"my-channel-key\",\n    roles=[\"ProductDistribution\"],\n    name={\n        \"nl-NL\": \"Channel\",\n    },\n    description={\n        \"nl-NL\": \"Channel\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_channel = new Commercetools.Channel(\"my-channel\", new()\n    {\n        Key = \"my-channel-key\",\n        Roles = new[]\n        {\n            \"ProductDistribution\",\n        },\n        Name = \n        {\n            { \"nl-NL\", \"Channel\" },\n        },\n        Description = \n        {\n            { \"nl-NL\", \"Channel\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewChannel(ctx, \"my-channel\", &commercetools.ChannelArgs{\n\t\t\tKey: pulumi.String(\"my-channel-key\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ProductDistribution\"),\n\t\t\t},\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"nl-NL\": pulumi.String(\"Channel\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"nl-NL\": pulumi.String(\"Channel\"),\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.commercetools.Channel;\nimport com.pulumi.commercetools.ChannelArgs;\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 my_channel = new Channel(\"my-channel\", ChannelArgs.builder()\n            .key(\"my-channel-key\")\n            .roles(\"ProductDistribution\")\n            .name(Map.of(\"nl-NL\", \"Channel\"))\n            .description(Map.of(\"nl-NL\", \"Channel\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-channel:\n    type: commercetools:Channel\n    properties:\n      key: my-channel-key\n      roles:\n        - ProductDistribution\n      name:\n        nl-NL: Channel\n      description:\n        nl-NL: Channel\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"address":{"$ref":"#/types/commercetools:index%2FChannelAddress:ChannelAddress"},"channelId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FChannelCustom:ChannelCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"geolocation":{"$ref":"#/types/commercetools:index%2FChannelGeolocation:ChannelGeolocation"},"key":{"description":"Any arbitrary string key that uniquely identifies this channel within the project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"roles":{"description":"The [roles](https://docs.commercetools.com/api/projects/channels#channelroleenum) of this channel. Each channel must have at least one role\n","items":{"type":"string"},"type":"array"}},"properties":{"address":{"$ref":"#/types/commercetools:index%2FChannelAddress:ChannelAddress"},"channelId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FChannelCustom:ChannelCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"geolocation":{"$ref":"#/types/commercetools:index%2FChannelGeolocation:ChannelGeolocation"},"key":{"description":"Any arbitrary string key that uniquely identifies this channel within the project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"roles":{"description":"The [roles](https://docs.commercetools.com/api/projects/channels#channelroleenum) of this channel. Each channel must have at least one role\n","items":{"type":"string"},"type":"array"},"version":{"type":"number"}},"required":["channelId","key","roles","version"],"requiredInputs":["key","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering Channel resources.\n","properties":{"address":{"$ref":"#/types/commercetools:index%2FChannelAddress:ChannelAddress"},"channelId":{"description":"The ID of this resource.\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FChannelCustom:ChannelCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"geolocation":{"$ref":"#/types/commercetools:index%2FChannelGeolocation:ChannelGeolocation"},"key":{"description":"Any arbitrary string key that uniquely identifies this channel within the project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"roles":{"description":"The [roles](https://docs.commercetools.com/api/projects/channels#channelroleenum) of this channel. Each channel must have at least one role\n","items":{"type":"string"},"type":"array"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/customObject:CustomObject":{"description":"Custom objects are a way to store arbitrary JSON-formatted data on the commercetools platform. It allows you to persist data that does not fit the standard data model. This frees your application completely from any third-party persistence solution and means that all your data stays on the commercetools platform.\n\nSee also the [Custom Object API Documentation](https://docs.commercetools.com/api/projects/custom-objects)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_custom_object = new commercetools.CustomObject(\"my-custom-object\", {\n    container: \"my-container\",\n    key: \"my-key\",\n    value: JSON.stringify(10),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_commercetools as commercetools\n\nmy_custom_object = commercetools.CustomObject(\"my-custom-object\",\n    container=\"my-container\",\n    key=\"my-key\",\n    value=json.dumps(10))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_custom_object = new Commercetools.CustomObject(\"my-custom-object\", new()\n    {\n        Container = \"my-container\",\n        Key = \"my-key\",\n        Value = JsonSerializer.Serialize(10),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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(10)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = commercetools.NewCustomObject(ctx, \"my-custom-object\", &commercetools.CustomObjectArgs{\n\t\t\tContainer: pulumi.String(\"my-container\"),\n\t\t\tKey:       pulumi.String(\"my-key\"),\n\t\t\tValue:     pulumi.String(json0),\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.commercetools.CustomObject;\nimport com.pulumi.commercetools.CustomObjectArgs;\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 my_custom_object = new CustomObject(\"my-custom-object\", CustomObjectArgs.builder()\n            .container(\"my-container\")\n            .key(\"my-key\")\n            .value(serializeJson(\n                10))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-custom-object:\n    type: commercetools:CustomObject\n    properties:\n      container: my-container\n      key: my-key\n      value:\n        fn::toJSON: 10\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"container":{"description":"A namespace to group custom objects matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"customObjectId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"String matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"value":{"description":"JSON types Number, String, Boolean, Array, Object\n","type":"string"}},"properties":{"container":{"description":"A namespace to group custom objects matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"customObjectId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"String matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"value":{"description":"JSON types Number, String, Boolean, Array, Object\n","type":"string"},"version":{"type":"number"}},"required":["container","customObjectId","key","value","version"],"requiredInputs":["container","key","value"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomObject resources.\n","properties":{"container":{"description":"A namespace to group custom objects matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"customObjectId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"String matching the pattern '[-_~.a-zA-Z0-9]+'\n","type":"string"},"value":{"description":"JSON types Number, String, Boolean, Array, Object\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/customerGroup:CustomerGroup":{"description":"A Customer can be a member of a customer group (for example reseller, gold member). Special prices can be assigned to specific products based on a customer group.\n\nSee also the [Customer Group API Documentation](https://docs.commercetools.com/api/projects/customerGroups)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst standard = new commercetools.CustomerGroup(\"standard\", {\n    key: \"my-customer-group-key\",\n    name: \"Standard Customer Group\",\n});\nconst golden = new commercetools.CustomerGroup(\"golden\", {\n    key: \"my-customer-group-key\",\n    name: \"Golden Customer Group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nstandard = commercetools.CustomerGroup(\"standard\",\n    key=\"my-customer-group-key\",\n    name=\"Standard Customer Group\")\ngolden = commercetools.CustomerGroup(\"golden\",\n    key=\"my-customer-group-key\",\n    name=\"Golden Customer Group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var standard = new Commercetools.CustomerGroup(\"standard\", new()\n    {\n        Key = \"my-customer-group-key\",\n        Name = \"Standard Customer Group\",\n    });\n\n    var golden = new Commercetools.CustomerGroup(\"golden\", new()\n    {\n        Key = \"my-customer-group-key\",\n        Name = \"Golden Customer Group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewCustomerGroup(ctx, \"standard\", &commercetools.CustomerGroupArgs{\n\t\t\tKey:  pulumi.String(\"my-customer-group-key\"),\n\t\t\tName: pulumi.String(\"Standard Customer Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewCustomerGroup(ctx, \"golden\", &commercetools.CustomerGroupArgs{\n\t\t\tKey:  pulumi.String(\"my-customer-group-key\"),\n\t\t\tName: pulumi.String(\"Golden Customer Group\"),\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.commercetools.CustomerGroup;\nimport com.pulumi.commercetools.CustomerGroupArgs;\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 standard = new CustomerGroup(\"standard\", CustomerGroupArgs.builder()\n            .key(\"my-customer-group-key\")\n            .name(\"Standard Customer Group\")\n            .build());\n\n        var golden = new CustomerGroup(\"golden\", CustomerGroupArgs.builder()\n            .key(\"my-customer-group-key\")\n            .name(\"Golden Customer Group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  standard:\n    type: commercetools:CustomerGroup\n    properties:\n      key: my-customer-group-key\n      name: Standard Customer Group\n  golden:\n    type: commercetools:CustomerGroup\n    properties:\n      key: my-customer-group-key\n      name: Golden Customer Group\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"custom":{"$ref":"#/types/commercetools:index%2FCustomerGroupCustom:CustomerGroupCustom"},"customerGroupId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"User-specific unique identifier for the customer group\n","type":"string"},"name":{"description":"Unique within the project\n","type":"string"}},"properties":{"custom":{"$ref":"#/types/commercetools:index%2FCustomerGroupCustom:CustomerGroupCustom"},"customerGroupId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"User-specific unique identifier for the customer group\n","type":"string"},"name":{"description":"Unique within the project\n","type":"string"},"version":{"type":"number"}},"required":["customerGroupId","name","version"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomerGroup resources.\n","properties":{"custom":{"$ref":"#/types/commercetools:index%2FCustomerGroupCustom:CustomerGroupCustom"},"customerGroupId":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"User-specific unique identifier for the customer group\n","type":"string"},"name":{"description":"Unique within the project\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/discountCode:DiscountCode":{"description":"With discount codes it is possible to give specific cart discounts to an eligible set of users. They are defined by a string value which can be added to a cart so that specific cart discounts can be applied to the cart.\n\nSee also the [Discount Code Api Documentation](https://docs.commercetools.com/api/projects/discountCodes)\n\n","inputProperties":{"cartDiscounts":{"description":"The referenced matching cart discounts can be applied to the cart once the DiscountCode is added\n","items":{"type":"string"},"type":"array"},"code":{"description":"Unique identifier of this discount code. This value is added to the cart to enable the related cart discounts in the cart\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FDiscountCodeCustom:DiscountCodeCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"discountCodeId":{"description":"The ID of this resource.\n","type":"string"},"groups":{"description":"The groups to which this discount code belong\n","items":{"type":"string"},"type":"array"},"isActive":{"type":"boolean"},"maxApplications":{"description":"The discount code can only be applied the specified times overall. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"maxApplicationsPerCustomer":{"description":"The discount code can only be applied the specified times per customer. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"[Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"validFrom":{"description":"The time from which the discount can be applied on a cart. Before that time the code is invalid\n","type":"string"},"validUntil":{"description":"The time until the discount can be applied on a cart. After that time the code is invalid\n","type":"string"}},"properties":{"cartDiscounts":{"description":"The referenced matching cart discounts can be applied to the cart once the DiscountCode is added\n","items":{"type":"string"},"type":"array"},"code":{"description":"Unique identifier of this discount code. This value is added to the cart to enable the related cart discounts in the cart\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FDiscountCodeCustom:DiscountCodeCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"discountCodeId":{"description":"The ID of this resource.\n","type":"string"},"groups":{"description":"The groups to which this discount code belong\n","items":{"type":"string"},"type":"array"},"isActive":{"type":"boolean"},"maxApplications":{"description":"The discount code can only be applied the specified times overall. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"maxApplicationsPerCustomer":{"description":"The discount code can only be applied the specified times per customer. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"[Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"validFrom":{"description":"The time from which the discount can be applied on a cart. Before that time the code is invalid\n","type":"string"},"validUntil":{"description":"The time until the discount can be applied on a cart. After that time the code is invalid\n","type":"string"},"version":{"type":"number"}},"required":["cartDiscounts","code","discountCodeId","version"],"requiredInputs":["cartDiscounts","code"],"stateInputs":{"description":"Input properties used for looking up and filtering DiscountCode resources.\n","properties":{"cartDiscounts":{"description":"The referenced matching cart discounts can be applied to the cart once the DiscountCode is added\n","items":{"type":"string"},"type":"array"},"code":{"description":"Unique identifier of this discount code. This value is added to the cart to enable the related cart discounts in the cart\n","type":"string"},"custom":{"$ref":"#/types/commercetools:index%2FDiscountCodeCustom:DiscountCodeCustom"},"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"discountCodeId":{"description":"The ID of this resource.\n","type":"string"},"groups":{"description":"The groups to which this discount code belong\n","items":{"type":"string"},"type":"array"},"isActive":{"type":"boolean"},"maxApplications":{"description":"The discount code can only be applied the specified times overall. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"maxApplicationsPerCustomer":{"description":"The discount code can only be applied the specified times per customer. Note that due to an engine constraint 0 cannot be set for this field, so possible values are either larger than 0 or not set\n","type":"number"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"[Cart Predicate](https://docs.commercetools.com/api/projects/predicates#cart-predicates)\n","type":"string"},"validFrom":{"description":"The time from which the discount can be applied on a cart. Before that time the code is invalid\n","type":"string"},"validUntil":{"description":"The time until the discount can be applied on a cart. After that time the code is invalid\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/productDiscount:ProductDiscount":{"description":"Product discounts are used to reduce certain product prices.\n\nAlso see the [Product Discount API Documentation](https://docs.commercetools.com/api/projects/productDiscounts).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_product_discount = new commercetools.ProductDiscount(\"my-product-discount\", {\n    key: \"my-product-discount-key\",\n    name: {\n        en: \"Product discount name\",\n    },\n    description: {\n        en: \"Product discount description\",\n    },\n    predicate: \"1=1\",\n    sortOrder: \"0.9\",\n    isActive: true,\n    validFrom: \"2018-01-02T15:04:05Z\",\n    validUntil: \"2019-01-02T15:04:05Z\",\n    value: {\n        type: \"relative\",\n        permyriad: 1000,\n    },\n});\nconst my_product_discount_absolute = new commercetools.ProductDiscount(\"my-product-discount-absolute\", {\n    key: \"my-product-discount-absolute-key\",\n    name: {\n        en: \"Product discount name\",\n    },\n    description: {\n        en: \"Product discount description\",\n    },\n    predicate: \"1=1\",\n    sortOrder: \"0.9\",\n    isActive: true,\n    validFrom: \"2018-01-02T15:04:05Z\",\n    validUntil: \"2019-01-02T15:04:05Z\",\n    value: {\n        type: \"absolute\",\n        monies: [{\n            currencyCode: \"EUR\",\n            centAmount: 500,\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_product_discount = commercetools.ProductDiscount(\"my-product-discount\",\n    key=\"my-product-discount-key\",\n    name={\n        \"en\": \"Product discount name\",\n    },\n    description={\n        \"en\": \"Product discount description\",\n    },\n    predicate=\"1=1\",\n    sort_order=\"0.9\",\n    is_active=True,\n    valid_from=\"2018-01-02T15:04:05Z\",\n    valid_until=\"2019-01-02T15:04:05Z\",\n    value={\n        \"type\": \"relative\",\n        \"permyriad\": 1000,\n    })\nmy_product_discount_absolute = commercetools.ProductDiscount(\"my-product-discount-absolute\",\n    key=\"my-product-discount-absolute-key\",\n    name={\n        \"en\": \"Product discount name\",\n    },\n    description={\n        \"en\": \"Product discount description\",\n    },\n    predicate=\"1=1\",\n    sort_order=\"0.9\",\n    is_active=True,\n    valid_from=\"2018-01-02T15:04:05Z\",\n    valid_until=\"2019-01-02T15:04:05Z\",\n    value={\n        \"type\": \"absolute\",\n        \"monies\": [{\n            \"currency_code\": \"EUR\",\n            \"cent_amount\": 500,\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_product_discount = new Commercetools.ProductDiscount(\"my-product-discount\", new()\n    {\n        Key = \"my-product-discount-key\",\n        Name = \n        {\n            { \"en\", \"Product discount name\" },\n        },\n        Description = \n        {\n            { \"en\", \"Product discount description\" },\n        },\n        Predicate = \"1=1\",\n        SortOrder = \"0.9\",\n        IsActive = true,\n        ValidFrom = \"2018-01-02T15:04:05Z\",\n        ValidUntil = \"2019-01-02T15:04:05Z\",\n        Value = new Commercetools.Inputs.ProductDiscountValueArgs\n        {\n            Type = \"relative\",\n            Permyriad = 1000,\n        },\n    });\n\n    var my_product_discount_absolute = new Commercetools.ProductDiscount(\"my-product-discount-absolute\", new()\n    {\n        Key = \"my-product-discount-absolute-key\",\n        Name = \n        {\n            { \"en\", \"Product discount name\" },\n        },\n        Description = \n        {\n            { \"en\", \"Product discount description\" },\n        },\n        Predicate = \"1=1\",\n        SortOrder = \"0.9\",\n        IsActive = true,\n        ValidFrom = \"2018-01-02T15:04:05Z\",\n        ValidUntil = \"2019-01-02T15:04:05Z\",\n        Value = new Commercetools.Inputs.ProductDiscountValueArgs\n        {\n            Type = \"absolute\",\n            Monies = new[]\n            {\n                new Commercetools.Inputs.ProductDiscountValueMoneyArgs\n                {\n                    CurrencyCode = \"EUR\",\n                    CentAmount = 500,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewProductDiscount(ctx, \"my-product-discount\", &commercetools.ProductDiscountArgs{\n\t\t\tKey: pulumi.String(\"my-product-discount-key\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Product discount name\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Product discount description\"),\n\t\t\t},\n\t\t\tPredicate:  pulumi.String(\"1=1\"),\n\t\t\tSortOrder:  pulumi.String(\"0.9\"),\n\t\t\tIsActive:   pulumi.Bool(true),\n\t\t\tValidFrom:  pulumi.String(\"2018-01-02T15:04:05Z\"),\n\t\t\tValidUntil: pulumi.String(\"2019-01-02T15:04:05Z\"),\n\t\t\tValue: &commercetools.ProductDiscountValueArgs{\n\t\t\t\tType:      pulumi.String(\"relative\"),\n\t\t\t\tPermyriad: pulumi.Float64(1000),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewProductDiscount(ctx, \"my-product-discount-absolute\", &commercetools.ProductDiscountArgs{\n\t\t\tKey: pulumi.String(\"my-product-discount-absolute-key\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Product discount name\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Product discount description\"),\n\t\t\t},\n\t\t\tPredicate:  pulumi.String(\"1=1\"),\n\t\t\tSortOrder:  pulumi.String(\"0.9\"),\n\t\t\tIsActive:   pulumi.Bool(true),\n\t\t\tValidFrom:  pulumi.String(\"2018-01-02T15:04:05Z\"),\n\t\t\tValidUntil: pulumi.String(\"2019-01-02T15:04:05Z\"),\n\t\t\tValue: &commercetools.ProductDiscountValueArgs{\n\t\t\t\tType: pulumi.String(\"absolute\"),\n\t\t\t\tMonies: commercetools.ProductDiscountValueMoneyArray{\n\t\t\t\t\t&commercetools.ProductDiscountValueMoneyArgs{\n\t\t\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\n\t\t\t\t\t\tCentAmount:   pulumi.Float64(500),\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.commercetools.ProductDiscount;\nimport com.pulumi.commercetools.ProductDiscountArgs;\nimport com.pulumi.commercetools.inputs.ProductDiscountValueArgs;\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 my_product_discount = new ProductDiscount(\"my-product-discount\", ProductDiscountArgs.builder()\n            .key(\"my-product-discount-key\")\n            .name(Map.of(\"en\", \"Product discount name\"))\n            .description(Map.of(\"en\", \"Product discount description\"))\n            .predicate(\"1=1\")\n            .sortOrder(\"0.9\")\n            .isActive(true)\n            .validFrom(\"2018-01-02T15:04:05Z\")\n            .validUntil(\"2019-01-02T15:04:05Z\")\n            .value(ProductDiscountValueArgs.builder()\n                .type(\"relative\")\n                .permyriad(1000.0)\n                .build())\n            .build());\n\n        var my_product_discount_absolute = new ProductDiscount(\"my-product-discount-absolute\", ProductDiscountArgs.builder()\n            .key(\"my-product-discount-absolute-key\")\n            .name(Map.of(\"en\", \"Product discount name\"))\n            .description(Map.of(\"en\", \"Product discount description\"))\n            .predicate(\"1=1\")\n            .sortOrder(\"0.9\")\n            .isActive(true)\n            .validFrom(\"2018-01-02T15:04:05Z\")\n            .validUntil(\"2019-01-02T15:04:05Z\")\n            .value(ProductDiscountValueArgs.builder()\n                .type(\"absolute\")\n                .monies(ProductDiscountValueMoneyArgs.builder()\n                    .currencyCode(\"EUR\")\n                    .centAmount(500.0)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-product-discount:\n    type: commercetools:ProductDiscount\n    properties:\n      key: my-product-discount-key\n      name:\n        en: Product discount name\n      description:\n        en: Product discount description\n      predicate: 1=1\n      sortOrder: '0.9'\n      isActive: true\n      validFrom: 2018-01-02T15:04:05Z\n      validUntil: 2019-01-02T15:04:05Z\n      value:\n        type: relative\n        permyriad: 1000\n  my-product-discount-absolute:\n    type: commercetools:ProductDiscount\n    properties:\n      key: my-product-discount-absolute-key\n      name:\n        en: Product discount name\n      description:\n        en: Product discount description\n      predicate: 1=1\n      sortOrder: '0.9'\n      isActive: true\n      validFrom: 2018-01-02T15:04:05Z\n      validUntil: 2019-01-02T15:04:05Z\n      value:\n        type: absolute\n        monies:\n          - currencyCode: EUR\n            centAmount: 500\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"When set the product discount is applied to products matching the predicate\n","type":"boolean"},"key":{"description":"User-defined unique identifier for the ProductDiscount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Product Predicate](https://docs.commercetools.com/api/projects/predicates#product-predicates)\n","type":"string"},"productDiscountId":{"description":"The ID of this resource.\n","type":"string"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching product discounts are applied to a product in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all product discounts\n","type":"string"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FProductDiscountValue:ProductDiscountValue","description":"Defines the effect the discount will have. [ProductDiscountValue](https://docs.commercetools.com/api/projects/productDiscounts#productdiscountvalue)\n"}},"properties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"When set the product discount is applied to products matching the predicate\n","type":"boolean"},"key":{"description":"User-defined unique identifier for the ProductDiscount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Product Predicate](https://docs.commercetools.com/api/projects/predicates#product-predicates)\n","type":"string"},"productDiscountId":{"description":"The ID of this resource.\n","type":"string"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching product discounts are applied to a product in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all product discounts\n","type":"string"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FProductDiscountValue:ProductDiscountValue","description":"Defines the effect the discount will have. [ProductDiscountValue](https://docs.commercetools.com/api/projects/productDiscounts#productdiscountvalue)\n"},"version":{"type":"number"}},"required":["name","predicate","productDiscountId","sortOrder","value","version"],"requiredInputs":["name","predicate","sortOrder","value"],"stateInputs":{"description":"Input properties used for looking up and filtering ProductDiscount resources.\n","properties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"isActive":{"description":"When set the product discount is applied to products matching the predicate\n","type":"boolean"},"key":{"description":"User-defined unique identifier for the ProductDiscount. Must be unique across a project\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"predicate":{"description":"A valid [Product Predicate](https://docs.commercetools.com/api/projects/predicates#product-predicates)\n","type":"string"},"productDiscountId":{"description":"The ID of this resource.\n","type":"string"},"sortOrder":{"description":"The string must contain a number between 0 and 1. All matching product discounts are applied to a product in the order defined by this field. A discount with greater sort order is prioritized higher than a discount with lower sort order. The sort order is unambiguous among all product discounts\n","type":"string"},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"value":{"$ref":"#/types/commercetools:index%2FProductDiscountValue:ProductDiscountValue","description":"Defines the effect the discount will have. [ProductDiscountValue](https://docs.commercetools.com/api/projects/productDiscounts#productdiscountvalue)\n"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/productSelection:ProductSelection":{"description":"Product Selections can be used to manage individual assortments for different sales channels.\n\nSee also the [Product Selections API Documentation](https://docs.commercetools.com/api/projects/product-selections)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_type = new commercetools.Type(\"my-type\", {\n    key: \"my-type\",\n    name: {\n        en: \"My type\",\n        nl: \"Mijn type\",\n    },\n    resourceTypeIds: [\"product-selection\"],\n    fields: [{\n        name: \"my-field\",\n        label: {\n            en: \"My field\",\n            nl: \"Mijn veld\",\n        },\n        type: {\n            name: \"String\",\n        },\n    }],\n});\nconst product_selection_us = new commercetools.ProductSelection(\"product-selection-us\", {\n    key: \"product-selection-us\",\n    name: {\n        en: \"US Product Selection\",\n    },\n    mode: \"Individual\",\n    custom: {\n        typeId: my_type.typeId,\n        fields: {\n            \"my-field\": \"my-value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_type = commercetools.Type(\"my-type\",\n    key=\"my-type\",\n    name={\n        \"en\": \"My type\",\n        \"nl\": \"Mijn type\",\n    },\n    resource_type_ids=[\"product-selection\"],\n    fields=[{\n        \"name\": \"my-field\",\n        \"label\": {\n            \"en\": \"My field\",\n            \"nl\": \"Mijn veld\",\n        },\n        \"type\": {\n            \"name\": \"String\",\n        },\n    }])\nproduct_selection_us = commercetools.ProductSelection(\"product-selection-us\",\n    key=\"product-selection-us\",\n    name={\n        \"en\": \"US Product Selection\",\n    },\n    mode=\"Individual\",\n    custom={\n        \"type_id\": my_type.type_id,\n        \"fields\": {\n            \"my-field\": \"my-value\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_type = new Commercetools.Type(\"my-type\", new()\n    {\n        Key = \"my-type\",\n        Name = \n        {\n            { \"en\", \"My type\" },\n            { \"nl\", \"Mijn type\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"product-selection\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"my-field\",\n                Label = \n                {\n                    { \"en\", \"My field\" },\n                    { \"nl\", \"Mijn veld\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n        },\n    });\n\n    var product_selection_us = new Commercetools.ProductSelection(\"product-selection-us\", new()\n    {\n        Key = \"product-selection-us\",\n        Name = \n        {\n            { \"en\", \"US Product Selection\" },\n        },\n        Mode = \"Individual\",\n        Custom = new Commercetools.Inputs.ProductSelectionCustomArgs\n        {\n            TypeId = my_type.TypeId,\n            Fields = \n            {\n                { \"my-field\", \"my-value\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_type, err := commercetools.NewType(ctx, \"my-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My type\"),\n\t\t\t\t\"nl\": pulumi.String(\"Mijn type\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"product-selection\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"my-field\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"My field\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Mijn veld\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\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 = commercetools.NewProductSelection(ctx, \"product-selection-us\", &commercetools.ProductSelectionArgs{\n\t\t\tKey: pulumi.String(\"product-selection-us\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"US Product Selection\"),\n\t\t\t},\n\t\t\tMode: pulumi.String(\"Individual\"),\n\t\t\tCustom: &commercetools.ProductSelectionCustomArgs{\n\t\t\t\tTypeId: my_type.TypeId,\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my-field\": pulumi.String(\"my-value\"),\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.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.ProductSelection;\nimport com.pulumi.commercetools.ProductSelectionArgs;\nimport com.pulumi.commercetools.inputs.ProductSelectionCustomArgs;\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 my_type = new Type(\"my-type\", TypeArgs.builder()\n            .key(\"my-type\")\n            .name(Map.ofEntries(\n                Map.entry(\"en\", \"My type\"),\n                Map.entry(\"nl\", \"Mijn type\")\n            ))\n            .resourceTypeIds(\"product-selection\")\n            .fields(TypeFieldArgs.builder()\n                .name(\"my-field\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"My field\"),\n                    Map.entry(\"nl\", \"Mijn veld\")\n                ))\n                .type(TypeFieldTypeArgs.builder()\n                    .name(\"String\")\n                    .build())\n                .build())\n            .build());\n\n        var product_selection_us = new ProductSelection(\"product-selection-us\", ProductSelectionArgs.builder()\n            .key(\"product-selection-us\")\n            .name(Map.of(\"en\", \"US Product Selection\"))\n            .mode(\"Individual\")\n            .custom(ProductSelectionCustomArgs.builder()\n                .typeId(my_type.typeId())\n                .fields(Map.of(\"my-field\", \"my-value\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-type:\n    type: commercetools:Type\n    properties:\n      key: my-type\n      name:\n        en: My type\n        nl: Mijn type\n      resourceTypeIds:\n        - product-selection\n      fields:\n        - name: my-field\n          label:\n            en: My field\n            nl: Mijn veld\n          type:\n            name: String\n  product-selection-us:\n    type: commercetools:ProductSelection\n    properties:\n      key: product-selection-us\n      name:\n        en: US Product Selection\n      mode: Individual\n      custom:\n        typeId: ${[\"my-type\"].typeId}\n        fields:\n          my-field: my-value\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"custom":{"$ref":"#/types/commercetools:index%2FProductSelectionCustom:ProductSelectionCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the ProductSelection.\n","type":"string"},"mode":{"description":"Specifies in which way the Products are assigned to the ProductSelection.Currently, the only way of doing this is to specify each Product individually, either by including or excluding them explicitly.Default: Individual\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the ProductSelection.\n","type":"object"}},"properties":{"custom":{"$ref":"#/types/commercetools:index%2FProductSelectionCustom:ProductSelectionCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the ProductSelection.\n","type":"string"},"mode":{"description":"Specifies in which way the Products are assigned to the ProductSelection.Currently, the only way of doing this is to specify each Product individually, either by including or excluding them explicitly.Default: Individual\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the ProductSelection.\n","type":"object"},"version":{"description":"Current version of the ProductSelection.\n","type":"number"}},"required":["mode","name","version"],"requiredInputs":["name"],"stateInputs":{"description":"Input properties used for looking up and filtering ProductSelection resources.\n","properties":{"custom":{"$ref":"#/types/commercetools:index%2FProductSelectionCustom:ProductSelectionCustom","description":"Custom fields for this resource.\n"},"key":{"description":"User-defined unique identifier of the ProductSelection.\n","type":"string"},"mode":{"description":"Specifies in which way the Products are assigned to the ProductSelection.Currently, the only way of doing this is to specify each Product individually, either by including or excluding them explicitly.Default: Individual\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the ProductSelection.\n","type":"object"},"version":{"description":"Current version of the ProductSelection.\n","type":"number"}},"type":"object"},"type":"object"},"commercetools:index/productType:ProductType":{"description":"Product types are used to describe common characteristics, most importantly common custom attributes, of many concrete products. Please note: to customize other resources than products, please refer to resource_type.\n\nSee also the [Product Type API Documentation](https://docs.commercetools.com/api/projects/productTypes)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst some_generic_properties_product_type = new commercetools.ProductType(\"some-generic-properties-product-type\", {\n    key: \"some-key\",\n    name: \"Some generic product properties\",\n    description: \"All the generic product properties\",\n    attributes: [{\n        name: \"perishable\",\n        label: {\n            en: \"Is perishable\",\n            nl: \"Is perishable\",\n        },\n        required: true,\n        type: {\n            name: \"boolean\",\n        },\n    }],\n});\nconst my_product_type = new commercetools.ProductType(\"my-product-type\", {\n    key: \"my-product-type-key\",\n    name: \"Lens specification\",\n    description: \"All the specific info concerning the lens\",\n    attributes: [\n        {\n            name: \"autofocus\",\n            label: {\n                en: \"Has autofocus\",\n                nl: \"Heeft autofocus\",\n            },\n            required: true,\n            type: {\n                name: \"boolean\",\n            },\n        },\n        {\n            name: \"lens_product_no\",\n            label: {\n                en: \"Lens product number\",\n                nl: \"Objectief productnummer\",\n            },\n            required: true,\n            type: {\n                name: \"text\",\n            },\n            constraint: \"Unique\",\n            inputTip: {\n                en: \"Enter the product code\",\n                nl: \"Voer de product code in\",\n            },\n            searchable: true,\n        },\n        {\n            name: \"previous_model\",\n            label: {\n                en: \"Previous model\",\n                nl: \"Vorig model\",\n            },\n            type: {\n                name: \"reference\",\n                referenceTypeId: \"product\",\n            },\n        },\n        {\n            name: \"product_properties\",\n            label: {\n                en: \"Product properties\",\n                nl: \"Product eigenschappen\",\n            },\n            required: false,\n            type: {\n                name: \"nested\",\n                typeReference: some_generic_properties_product_type.productTypeId,\n            },\n        },\n        {\n            name: \"some-flag\",\n            label: {\n                en: \"Some flag\",\n                nl: \"Een vlag\",\n            },\n            required: false,\n            type: {\n                name: \"enum\",\n                values: [\n                    {\n                        key: \"FLAG-1\",\n                        label: \"Flag 1\",\n                    },\n                    {\n                        key: \"FLAG-2\",\n                        label: \"FLAG-2\",\n                    },\n                ],\n            },\n        },\n        {\n            name: \"origin\",\n            label: {\n                en: \"Origin country\",\n                nl: \"Land van herkomst\",\n            },\n            required: false,\n            type: {\n                name: \"set\",\n                elementType: {\n                    name: \"lenum\",\n                    localizedValues: [\n                        {\n                            key: \"NL\",\n                            label: {\n                                en: \"Netherlands\",\n                                nl: \"Nederland\",\n                            },\n                        },\n                        {\n                            key: \"DE\",\n                            label: {\n                                en: \"Germany\",\n                                nl: \"Duitsland\",\n                            },\n                        },\n                    ],\n                },\n            },\n        },\n    ],\n});\nconst product_type_with_product_level_attribute = new commercetools.ProductType(\"product-type-with-product-level-attribute\", {\n    key: \"some-key\",\n    name: \"Some generic product properties\",\n    description: \"All the generic product properties\",\n    attributes: [{\n        name: \"perishable\",\n        level: \"Product\",\n        label: {\n            en: \"Is perishable\",\n            nl: \"Is perishable\",\n        },\n        required: true,\n        type: {\n            name: \"boolean\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nsome_generic_properties_product_type = commercetools.ProductType(\"some-generic-properties-product-type\",\n    key=\"some-key\",\n    name=\"Some generic product properties\",\n    description=\"All the generic product properties\",\n    attributes=[{\n        \"name\": \"perishable\",\n        \"label\": {\n            \"en\": \"Is perishable\",\n            \"nl\": \"Is perishable\",\n        },\n        \"required\": True,\n        \"type\": {\n            \"name\": \"boolean\",\n        },\n    }])\nmy_product_type = commercetools.ProductType(\"my-product-type\",\n    key=\"my-product-type-key\",\n    name=\"Lens specification\",\n    description=\"All the specific info concerning the lens\",\n    attributes=[\n        {\n            \"name\": \"autofocus\",\n            \"label\": {\n                \"en\": \"Has autofocus\",\n                \"nl\": \"Heeft autofocus\",\n            },\n            \"required\": True,\n            \"type\": {\n                \"name\": \"boolean\",\n            },\n        },\n        {\n            \"name\": \"lens_product_no\",\n            \"label\": {\n                \"en\": \"Lens product number\",\n                \"nl\": \"Objectief productnummer\",\n            },\n            \"required\": True,\n            \"type\": {\n                \"name\": \"text\",\n            },\n            \"constraint\": \"Unique\",\n            \"input_tip\": {\n                \"en\": \"Enter the product code\",\n                \"nl\": \"Voer de product code in\",\n            },\n            \"searchable\": True,\n        },\n        {\n            \"name\": \"previous_model\",\n            \"label\": {\n                \"en\": \"Previous model\",\n                \"nl\": \"Vorig model\",\n            },\n            \"type\": {\n                \"name\": \"reference\",\n                \"reference_type_id\": \"product\",\n            },\n        },\n        {\n            \"name\": \"product_properties\",\n            \"label\": {\n                \"en\": \"Product properties\",\n                \"nl\": \"Product eigenschappen\",\n            },\n            \"required\": False,\n            \"type\": {\n                \"name\": \"nested\",\n                \"type_reference\": some_generic_properties_product_type.product_type_id,\n            },\n        },\n        {\n            \"name\": \"some-flag\",\n            \"label\": {\n                \"en\": \"Some flag\",\n                \"nl\": \"Een vlag\",\n            },\n            \"required\": False,\n            \"type\": {\n                \"name\": \"enum\",\n                \"values\": [\n                    {\n                        \"key\": \"FLAG-1\",\n                        \"label\": \"Flag 1\",\n                    },\n                    {\n                        \"key\": \"FLAG-2\",\n                        \"label\": \"FLAG-2\",\n                    },\n                ],\n            },\n        },\n        {\n            \"name\": \"origin\",\n            \"label\": {\n                \"en\": \"Origin country\",\n                \"nl\": \"Land van herkomst\",\n            },\n            \"required\": False,\n            \"type\": {\n                \"name\": \"set\",\n                \"element_type\": {\n                    \"name\": \"lenum\",\n                    \"localized_values\": [\n                        {\n                            \"key\": \"NL\",\n                            \"label\": {\n                                \"en\": \"Netherlands\",\n                                \"nl\": \"Nederland\",\n                            },\n                        },\n                        {\n                            \"key\": \"DE\",\n                            \"label\": {\n                                \"en\": \"Germany\",\n                                \"nl\": \"Duitsland\",\n                            },\n                        },\n                    ],\n                },\n            },\n        },\n    ])\nproduct_type_with_product_level_attribute = commercetools.ProductType(\"product-type-with-product-level-attribute\",\n    key=\"some-key\",\n    name=\"Some generic product properties\",\n    description=\"All the generic product properties\",\n    attributes=[{\n        \"name\": \"perishable\",\n        \"level\": \"Product\",\n        \"label\": {\n            \"en\": \"Is perishable\",\n            \"nl\": \"Is perishable\",\n        },\n        \"required\": True,\n        \"type\": {\n            \"name\": \"boolean\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var some_generic_properties_product_type = new Commercetools.ProductType(\"some-generic-properties-product-type\", new()\n    {\n        Key = \"some-key\",\n        Name = \"Some generic product properties\",\n        Description = \"All the generic product properties\",\n        Attributes = new[]\n        {\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"perishable\",\n                Label = \n                {\n                    { \"en\", \"Is perishable\" },\n                    { \"nl\", \"Is perishable\" },\n                },\n                Required = true,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"boolean\",\n                },\n            },\n        },\n    });\n\n    var my_product_type = new Commercetools.ProductType(\"my-product-type\", new()\n    {\n        Key = \"my-product-type-key\",\n        Name = \"Lens specification\",\n        Description = \"All the specific info concerning the lens\",\n        Attributes = new[]\n        {\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"autofocus\",\n                Label = \n                {\n                    { \"en\", \"Has autofocus\" },\n                    { \"nl\", \"Heeft autofocus\" },\n                },\n                Required = true,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"boolean\",\n                },\n            },\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"lens_product_no\",\n                Label = \n                {\n                    { \"en\", \"Lens product number\" },\n                    { \"nl\", \"Objectief productnummer\" },\n                },\n                Required = true,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"text\",\n                },\n                Constraint = \"Unique\",\n                InputTip = \n                {\n                    { \"en\", \"Enter the product code\" },\n                    { \"nl\", \"Voer de product code in\" },\n                },\n                Searchable = true,\n            },\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"previous_model\",\n                Label = \n                {\n                    { \"en\", \"Previous model\" },\n                    { \"nl\", \"Vorig model\" },\n                },\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"reference\",\n                    ReferenceTypeId = \"product\",\n                },\n            },\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"product_properties\",\n                Label = \n                {\n                    { \"en\", \"Product properties\" },\n                    { \"nl\", \"Product eigenschappen\" },\n                },\n                Required = false,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"nested\",\n                    TypeReference = some_generic_properties_product_type.ProductTypeId,\n                },\n            },\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"some-flag\",\n                Label = \n                {\n                    { \"en\", \"Some flag\" },\n                    { \"nl\", \"Een vlag\" },\n                },\n                Required = false,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"enum\",\n                    Values = new[]\n                    {\n                        new Commercetools.Inputs.ProductTypeAttributeTypeValueArgs\n                        {\n                            Key = \"FLAG-1\",\n                            Label = \"Flag 1\",\n                        },\n                        new Commercetools.Inputs.ProductTypeAttributeTypeValueArgs\n                        {\n                            Key = \"FLAG-2\",\n                            Label = \"FLAG-2\",\n                        },\n                    },\n                },\n            },\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"origin\",\n                Label = \n                {\n                    { \"en\", \"Origin country\" },\n                    { \"nl\", \"Land van herkomst\" },\n                },\n                Required = false,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"set\",\n                    ElementType = new Commercetools.Inputs.ProductTypeAttributeTypeElementTypeArgs\n                    {\n                        Name = \"lenum\",\n                        LocalizedValues = new[]\n                        {\n                            new Commercetools.Inputs.ProductTypeAttributeTypeElementTypeLocalizedValueArgs\n                            {\n                                Key = \"NL\",\n                                Label = \n                                {\n                                    { \"en\", \"Netherlands\" },\n                                    { \"nl\", \"Nederland\" },\n                                },\n                            },\n                            new Commercetools.Inputs.ProductTypeAttributeTypeElementTypeLocalizedValueArgs\n                            {\n                                Key = \"DE\",\n                                Label = \n                                {\n                                    { \"en\", \"Germany\" },\n                                    { \"nl\", \"Duitsland\" },\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var product_type_with_product_level_attribute = new Commercetools.ProductType(\"product-type-with-product-level-attribute\", new()\n    {\n        Key = \"some-key\",\n        Name = \"Some generic product properties\",\n        Description = \"All the generic product properties\",\n        Attributes = new[]\n        {\n            new Commercetools.Inputs.ProductTypeAttributeArgs\n            {\n                Name = \"perishable\",\n                Level = \"Product\",\n                Label = \n                {\n                    { \"en\", \"Is perishable\" },\n                    { \"nl\", \"Is perishable\" },\n                },\n                Required = true,\n                Type = new Commercetools.Inputs.ProductTypeAttributeTypeArgs\n                {\n                    Name = \"boolean\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsome_generic_properties_product_type, err := commercetools.NewProductType(ctx, \"some-generic-properties-product-type\", &commercetools.ProductTypeArgs{\n\t\t\tKey:         pulumi.String(\"some-key\"),\n\t\t\tName:        pulumi.String(\"Some generic product properties\"),\n\t\t\tDescription: pulumi.String(\"All the generic product properties\"),\n\t\t\tAttributes: commercetools.ProductTypeAttributeArray{\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"perishable\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Is perishable\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Is perishable\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"boolean\"),\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 = commercetools.NewProductType(ctx, \"my-product-type\", &commercetools.ProductTypeArgs{\n\t\t\tKey:         pulumi.String(\"my-product-type-key\"),\n\t\t\tName:        pulumi.String(\"Lens specification\"),\n\t\t\tDescription: pulumi.String(\"All the specific info concerning the lens\"),\n\t\t\tAttributes: commercetools.ProductTypeAttributeArray{\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"autofocus\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Has autofocus\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Heeft autofocus\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"boolean\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"lens_product_no\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Lens product number\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Objectief productnummer\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"text\"),\n\t\t\t\t\t},\n\t\t\t\t\tConstraint: pulumi.String(\"Unique\"),\n\t\t\t\t\tInputTip: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Enter the product code\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Voer de product code in\"),\n\t\t\t\t\t},\n\t\t\t\t\tSearchable: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"previous_model\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Previous model\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Vorig model\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName:            pulumi.String(\"reference\"),\n\t\t\t\t\t\tReferenceTypeId: pulumi.String(\"product\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"product_properties\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Product properties\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Product eigenschappen\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName:          pulumi.String(\"nested\"),\n\t\t\t\t\t\tTypeReference: some_generic_properties_product_type.ProductTypeId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"some-flag\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Some flag\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Een vlag\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"enum\"),\n\t\t\t\t\t\tValues: commercetools.ProductTypeAttributeTypeValueArray{\n\t\t\t\t\t\t\t&commercetools.ProductTypeAttributeTypeValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"FLAG-1\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.String(\"Flag 1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t&commercetools.ProductTypeAttributeTypeValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"FLAG-2\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.String(\"FLAG-2\"),\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\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"origin\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Origin country\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Land van herkomst\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"set\"),\n\t\t\t\t\t\tElementType: &commercetools.ProductTypeAttributeTypeElementTypeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"lenum\"),\n\t\t\t\t\t\t\tLocalizedValues: commercetools.ProductTypeAttributeTypeElementTypeLocalizedValueArray{\n\t\t\t\t\t\t\t\t&commercetools.ProductTypeAttributeTypeElementTypeLocalizedValueArgs{\n\t\t\t\t\t\t\t\t\tKey: pulumi.String(\"NL\"),\n\t\t\t\t\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\"en\": pulumi.String(\"Netherlands\"),\n\t\t\t\t\t\t\t\t\t\t\"nl\": pulumi.String(\"Nederland\"),\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\t&commercetools.ProductTypeAttributeTypeElementTypeLocalizedValueArgs{\n\t\t\t\t\t\t\t\t\tKey: pulumi.String(\"DE\"),\n\t\t\t\t\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\"en\": pulumi.String(\"Germany\"),\n\t\t\t\t\t\t\t\t\t\t\"nl\": pulumi.String(\"Duitsland\"),\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},\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\t_, err = commercetools.NewProductType(ctx, \"product-type-with-product-level-attribute\", &commercetools.ProductTypeArgs{\n\t\t\tKey:         pulumi.String(\"some-key\"),\n\t\t\tName:        pulumi.String(\"Some generic product properties\"),\n\t\t\tDescription: pulumi.String(\"All the generic product properties\"),\n\t\t\tAttributes: commercetools.ProductTypeAttributeArray{\n\t\t\t\t&commercetools.ProductTypeAttributeArgs{\n\t\t\t\t\tName:  pulumi.String(\"perishable\"),\n\t\t\t\t\tLevel: pulumi.String(\"Product\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Is perishable\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Is perishable\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\tType: &commercetools.ProductTypeAttributeTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"boolean\"),\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.commercetools.ProductType;\nimport com.pulumi.commercetools.ProductTypeArgs;\nimport com.pulumi.commercetools.inputs.ProductTypeAttributeArgs;\nimport com.pulumi.commercetools.inputs.ProductTypeAttributeTypeArgs;\nimport com.pulumi.commercetools.inputs.ProductTypeAttributeTypeElementTypeArgs;\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 some_generic_properties_product_type = new ProductType(\"some-generic-properties-product-type\", ProductTypeArgs.builder()\n            .key(\"some-key\")\n            .name(\"Some generic product properties\")\n            .description(\"All the generic product properties\")\n            .attributes(ProductTypeAttributeArgs.builder()\n                .name(\"perishable\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"Is perishable\"),\n                    Map.entry(\"nl\", \"Is perishable\")\n                ))\n                .required(true)\n                .type(ProductTypeAttributeTypeArgs.builder()\n                    .name(\"boolean\")\n                    .build())\n                .build())\n            .build());\n\n        var my_product_type = new ProductType(\"my-product-type\", ProductTypeArgs.builder()\n            .key(\"my-product-type-key\")\n            .name(\"Lens specification\")\n            .description(\"All the specific info concerning the lens\")\n            .attributes(            \n                ProductTypeAttributeArgs.builder()\n                    .name(\"autofocus\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Has autofocus\"),\n                        Map.entry(\"nl\", \"Heeft autofocus\")\n                    ))\n                    .required(true)\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"boolean\")\n                        .build())\n                    .build(),\n                ProductTypeAttributeArgs.builder()\n                    .name(\"lens_product_no\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Lens product number\"),\n                        Map.entry(\"nl\", \"Objectief productnummer\")\n                    ))\n                    .required(true)\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"text\")\n                        .build())\n                    .constraint(\"Unique\")\n                    .inputTip(Map.ofEntries(\n                        Map.entry(\"en\", \"Enter the product code\"),\n                        Map.entry(\"nl\", \"Voer de product code in\")\n                    ))\n                    .searchable(true)\n                    .build(),\n                ProductTypeAttributeArgs.builder()\n                    .name(\"previous_model\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Previous model\"),\n                        Map.entry(\"nl\", \"Vorig model\")\n                    ))\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"reference\")\n                        .referenceTypeId(\"product\")\n                        .build())\n                    .build(),\n                ProductTypeAttributeArgs.builder()\n                    .name(\"product_properties\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Product properties\"),\n                        Map.entry(\"nl\", \"Product eigenschappen\")\n                    ))\n                    .required(false)\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"nested\")\n                        .typeReference(some_generic_properties_product_type.productTypeId())\n                        .build())\n                    .build(),\n                ProductTypeAttributeArgs.builder()\n                    .name(\"some-flag\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Some flag\"),\n                        Map.entry(\"nl\", \"Een vlag\")\n                    ))\n                    .required(false)\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"enum\")\n                        .values(                        \n                            ProductTypeAttributeTypeValueArgs.builder()\n                                .key(\"FLAG-1\")\n                                .label(\"Flag 1\")\n                                .build(),\n                            ProductTypeAttributeTypeValueArgs.builder()\n                                .key(\"FLAG-2\")\n                                .label(\"FLAG-2\")\n                                .build())\n                        .build())\n                    .build(),\n                ProductTypeAttributeArgs.builder()\n                    .name(\"origin\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Origin country\"),\n                        Map.entry(\"nl\", \"Land van herkomst\")\n                    ))\n                    .required(false)\n                    .type(ProductTypeAttributeTypeArgs.builder()\n                        .name(\"set\")\n                        .elementType(ProductTypeAttributeTypeElementTypeArgs.builder()\n                            .name(\"lenum\")\n                            .localizedValues(                            \n                                ProductTypeAttributeTypeElementTypeLocalizedValueArgs.builder()\n                                    .key(\"NL\")\n                                    .label(Map.ofEntries(\n                                        Map.entry(\"en\", \"Netherlands\"),\n                                        Map.entry(\"nl\", \"Nederland\")\n                                    ))\n                                    .build(),\n                                ProductTypeAttributeTypeElementTypeLocalizedValueArgs.builder()\n                                    .key(\"DE\")\n                                    .label(Map.ofEntries(\n                                        Map.entry(\"en\", \"Germany\"),\n                                        Map.entry(\"nl\", \"Duitsland\")\n                                    ))\n                                    .build())\n                            .build())\n                        .build())\n                    .build())\n            .build());\n\n        var product_type_with_product_level_attribute = new ProductType(\"product-type-with-product-level-attribute\", ProductTypeArgs.builder()\n            .key(\"some-key\")\n            .name(\"Some generic product properties\")\n            .description(\"All the generic product properties\")\n            .attributes(ProductTypeAttributeArgs.builder()\n                .name(\"perishable\")\n                .level(\"Product\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"Is perishable\"),\n                    Map.entry(\"nl\", \"Is perishable\")\n                ))\n                .required(true)\n                .type(ProductTypeAttributeTypeArgs.builder()\n                    .name(\"boolean\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  some-generic-properties-product-type:\n    type: commercetools:ProductType\n    properties:\n      key: some-key\n      name: Some generic product properties\n      description: All the generic product properties\n      attributes:\n        - name: perishable\n          label:\n            en: Is perishable\n            nl: Is perishable\n          required: true\n          type:\n            name: boolean\n  my-product-type:\n    type: commercetools:ProductType\n    properties:\n      key: my-product-type-key\n      name: Lens specification\n      description: All the specific info concerning the lens\n      attributes:\n        - name: autofocus\n          label:\n            en: Has autofocus\n            nl: Heeft autofocus\n          required: true\n          type:\n            name: boolean\n        - name: lens_product_no\n          label:\n            en: Lens product number\n            nl: Objectief productnummer\n          required: true\n          type:\n            name: text\n          constraint: Unique\n          inputTip:\n            en: Enter the product code\n            nl: Voer de product code in\n          searchable: true\n        - name: previous_model\n          label:\n            en: Previous model\n            nl: Vorig model\n          type:\n            name: reference\n            referenceTypeId: product\n        - name: product_properties\n          label:\n            en: Product properties\n            nl: Product eigenschappen\n          required: false\n          type:\n            name: nested\n            typeReference: ${[\"some-generic-properties-product-type\"].productTypeId}\n        - name: some-flag\n          label:\n            en: Some flag\n            nl: Een vlag\n          required: false\n          type:\n            name: enum\n            values:\n              - key: FLAG-1\n                label: Flag 1\n              - key: FLAG-2\n                label: FLAG-2\n        - name: origin\n          label:\n            en: Origin country\n            nl: Land van herkomst\n          required: false\n          type:\n            name: set\n            elementType:\n              name: lenum\n              localizedValues:\n                - key: NL\n                  label:\n                    en: Netherlands\n                    nl: Nederland\n                - key: DE\n                  label:\n                    en: Germany\n                    nl: Duitsland\n  product-type-with-product-level-attribute:\n    type: commercetools:ProductType\n    properties:\n      key: some-key\n      name: Some generic product properties\n      description: All the generic product properties\n      attributes:\n        - name: perishable\n          level: Product\n          label:\n            en: Is perishable\n            nl: Is perishable\n          required: true\n          type:\n            name: boolean\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"attributes":{"description":"[Product attribute definition](https://docs.commercetools.com/api/projects/productTypes#attributedefinition)\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttribute:ProductTypeAttribute"},"type":"array"},"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the product type (max. 256 characters)\n","type":"string"},"name":{"type":"string"},"productTypeId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"attributes":{"description":"[Product attribute definition](https://docs.commercetools.com/api/projects/productTypes#attributedefinition)\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttribute:ProductTypeAttribute"},"type":"array"},"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the product type (max. 256 characters)\n","type":"string"},"name":{"type":"string"},"productTypeId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"required":["name","productTypeId","version"],"stateInputs":{"description":"Input properties used for looking up and filtering ProductType resources.\n","properties":{"attributes":{"description":"[Product attribute definition](https://docs.commercetools.com/api/projects/productTypes#attributedefinition)\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttribute:ProductTypeAttribute"},"type":"array"},"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the product type (max. 256 characters)\n","type":"string"},"name":{"type":"string"},"productTypeId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/projectSettings:ProjectSettings":{"description":"The project endpoint provides a limited set of information about settings and configuration of the project. Updating the settings is eventually consistent, it may take up to a minute before a change becomes fully active.\n\nSee also the [Project Settings API Documentation](https://docs.commercetools.com/api/projects/project)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_project = new commercetools.ProjectSettings(\"my-project\", {\n    name: \"My project\",\n    countries: [\n        \"NL\",\n        \"DE\",\n        \"US\",\n        \"CA\",\n    ],\n    currencies: [\n        \"EUR\",\n        \"USD\",\n        \"CAD\",\n    ],\n    languages: [\n        \"nl\",\n        \"de\",\n        \"en\",\n        \"fr-CA\",\n    ],\n    externalOauths: [{\n        url: \"https://example.com/oauth/introspection\",\n        authorizationHeader: \"Bearer secret\",\n    }],\n    messages: [{\n        enabled: true,\n    }],\n    carts: [{\n        countryTaxRateFallbackEnabled: false,\n        deleteDaysAfterLastModification: 10,\n        priceRoundingMode: \"HalfUp\",\n        taxRoundingMode: \"HalfUp\",\n    }],\n    shoppingLists: [{\n        deleteDaysAfterLastModification: 100,\n    }],\n    shippingRateInputType: \"CartClassification\",\n    enableSearchIndexProducts: true,\n    enableSearchIndexOrders: true,\n    enableSearchIndexCustomers: true,\n    enableSearchIndexBusinessUnits: true,\n    shippingRateCartClassificationValues: [{\n        key: \"Small\",\n        label: {\n            en: \"Small\",\n            nl: \"Klein\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_project = commercetools.ProjectSettings(\"my-project\",\n    name=\"My project\",\n    countries=[\n        \"NL\",\n        \"DE\",\n        \"US\",\n        \"CA\",\n    ],\n    currencies=[\n        \"EUR\",\n        \"USD\",\n        \"CAD\",\n    ],\n    languages=[\n        \"nl\",\n        \"de\",\n        \"en\",\n        \"fr-CA\",\n    ],\n    external_oauths=[{\n        \"url\": \"https://example.com/oauth/introspection\",\n        \"authorization_header\": \"Bearer secret\",\n    }],\n    messages=[{\n        \"enabled\": True,\n    }],\n    carts=[{\n        \"country_tax_rate_fallback_enabled\": False,\n        \"delete_days_after_last_modification\": 10,\n        \"price_rounding_mode\": \"HalfUp\",\n        \"tax_rounding_mode\": \"HalfUp\",\n    }],\n    shopping_lists=[{\n        \"delete_days_after_last_modification\": 100,\n    }],\n    shipping_rate_input_type=\"CartClassification\",\n    enable_search_index_products=True,\n    enable_search_index_orders=True,\n    enable_search_index_customers=True,\n    enable_search_index_business_units=True,\n    shipping_rate_cart_classification_values=[{\n        \"key\": \"Small\",\n        \"label\": {\n            \"en\": \"Small\",\n            \"nl\": \"Klein\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_project = new Commercetools.ProjectSettings(\"my-project\", new()\n    {\n        Name = \"My project\",\n        Countries = new[]\n        {\n            \"NL\",\n            \"DE\",\n            \"US\",\n            \"CA\",\n        },\n        Currencies = new[]\n        {\n            \"EUR\",\n            \"USD\",\n            \"CAD\",\n        },\n        Languages = new[]\n        {\n            \"nl\",\n            \"de\",\n            \"en\",\n            \"fr-CA\",\n        },\n        ExternalOauths = new[]\n        {\n            new Commercetools.Inputs.ProjectSettingsExternalOauthArgs\n            {\n                Url = \"https://example.com/oauth/introspection\",\n                AuthorizationHeader = \"Bearer secret\",\n            },\n        },\n        Messages = new[]\n        {\n            new Commercetools.Inputs.ProjectSettingsMessageArgs\n            {\n                Enabled = true,\n            },\n        },\n        Carts = new[]\n        {\n            new Commercetools.Inputs.ProjectSettingsCartArgs\n            {\n                CountryTaxRateFallbackEnabled = false,\n                DeleteDaysAfterLastModification = 10,\n                PriceRoundingMode = \"HalfUp\",\n                TaxRoundingMode = \"HalfUp\",\n            },\n        },\n        ShoppingLists = new[]\n        {\n            new Commercetools.Inputs.ProjectSettingsShoppingListArgs\n            {\n                DeleteDaysAfterLastModification = 100,\n            },\n        },\n        ShippingRateInputType = \"CartClassification\",\n        EnableSearchIndexProducts = true,\n        EnableSearchIndexOrders = true,\n        EnableSearchIndexCustomers = true,\n        EnableSearchIndexBusinessUnits = true,\n        ShippingRateCartClassificationValues = new[]\n        {\n            new Commercetools.Inputs.ProjectSettingsShippingRateCartClassificationValueArgs\n            {\n                Key = \"Small\",\n                Label = \n                {\n                    { \"en\", \"Small\" },\n                    { \"nl\", \"Klein\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewProjectSettings(ctx, \"my-project\", &commercetools.ProjectSettingsArgs{\n\t\t\tName: pulumi.String(\"My project\"),\n\t\t\tCountries: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"NL\"),\n\t\t\t\tpulumi.String(\"DE\"),\n\t\t\t\tpulumi.String(\"US\"),\n\t\t\t\tpulumi.String(\"CA\"),\n\t\t\t},\n\t\t\tCurrencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"EUR\"),\n\t\t\t\tpulumi.String(\"USD\"),\n\t\t\t\tpulumi.String(\"CAD\"),\n\t\t\t},\n\t\t\tLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nl\"),\n\t\t\t\tpulumi.String(\"de\"),\n\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\tpulumi.String(\"fr-CA\"),\n\t\t\t},\n\t\t\tExternalOauths: commercetools.ProjectSettingsExternalOauthArray{\n\t\t\t\t&commercetools.ProjectSettingsExternalOauthArgs{\n\t\t\t\t\tUrl:                 pulumi.String(\"https://example.com/oauth/introspection\"),\n\t\t\t\t\tAuthorizationHeader: pulumi.String(\"Bearer secret\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMessages: commercetools.ProjectSettingsMessageArray{\n\t\t\t\t&commercetools.ProjectSettingsMessageArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCarts: commercetools.ProjectSettingsCartArray{\n\t\t\t\t&commercetools.ProjectSettingsCartArgs{\n\t\t\t\t\tCountryTaxRateFallbackEnabled:   pulumi.Bool(false),\n\t\t\t\t\tDeleteDaysAfterLastModification: pulumi.Float64(10),\n\t\t\t\t\tPriceRoundingMode:               pulumi.String(\"HalfUp\"),\n\t\t\t\t\tTaxRoundingMode:                 pulumi.String(\"HalfUp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tShoppingLists: commercetools.ProjectSettingsShoppingListArray{\n\t\t\t\t&commercetools.ProjectSettingsShoppingListArgs{\n\t\t\t\t\tDeleteDaysAfterLastModification: pulumi.Float64(100),\n\t\t\t\t},\n\t\t\t},\n\t\t\tShippingRateInputType:          pulumi.String(\"CartClassification\"),\n\t\t\tEnableSearchIndexProducts:      pulumi.Bool(true),\n\t\t\tEnableSearchIndexOrders:        pulumi.Bool(true),\n\t\t\tEnableSearchIndexCustomers:     pulumi.Bool(true),\n\t\t\tEnableSearchIndexBusinessUnits: pulumi.Bool(true),\n\t\t\tShippingRateCartClassificationValues: commercetools.ProjectSettingsShippingRateCartClassificationValueArray{\n\t\t\t\t&commercetools.ProjectSettingsShippingRateCartClassificationValueArgs{\n\t\t\t\t\tKey: pulumi.String(\"Small\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Small\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Klein\"),\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.commercetools.ProjectSettings;\nimport com.pulumi.commercetools.ProjectSettingsArgs;\nimport com.pulumi.commercetools.inputs.ProjectSettingsExternalOauthArgs;\nimport com.pulumi.commercetools.inputs.ProjectSettingsMessageArgs;\nimport com.pulumi.commercetools.inputs.ProjectSettingsCartArgs;\nimport com.pulumi.commercetools.inputs.ProjectSettingsShoppingListArgs;\nimport com.pulumi.commercetools.inputs.ProjectSettingsShippingRateCartClassificationValueArgs;\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 my_project = new ProjectSettings(\"my-project\", ProjectSettingsArgs.builder()\n            .name(\"My project\")\n            .countries(            \n                \"NL\",\n                \"DE\",\n                \"US\",\n                \"CA\")\n            .currencies(            \n                \"EUR\",\n                \"USD\",\n                \"CAD\")\n            .languages(            \n                \"nl\",\n                \"de\",\n                \"en\",\n                \"fr-CA\")\n            .externalOauths(ProjectSettingsExternalOauthArgs.builder()\n                .url(\"https://example.com/oauth/introspection\")\n                .authorizationHeader(\"Bearer secret\")\n                .build())\n            .messages(ProjectSettingsMessageArgs.builder()\n                .enabled(true)\n                .build())\n            .carts(ProjectSettingsCartArgs.builder()\n                .countryTaxRateFallbackEnabled(false)\n                .deleteDaysAfterLastModification(10.0)\n                .priceRoundingMode(\"HalfUp\")\n                .taxRoundingMode(\"HalfUp\")\n                .build())\n            .shoppingLists(ProjectSettingsShoppingListArgs.builder()\n                .deleteDaysAfterLastModification(100.0)\n                .build())\n            .shippingRateInputType(\"CartClassification\")\n            .enableSearchIndexProducts(true)\n            .enableSearchIndexOrders(true)\n            .enableSearchIndexCustomers(true)\n            .enableSearchIndexBusinessUnits(true)\n            .shippingRateCartClassificationValues(ProjectSettingsShippingRateCartClassificationValueArgs.builder()\n                .key(\"Small\")\n                .label(Map.ofEntries(\n                    Map.entry(\"en\", \"Small\"),\n                    Map.entry(\"nl\", \"Klein\")\n                ))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-project:\n    type: commercetools:ProjectSettings\n    properties:\n      name: My project\n      countries:\n        - NL\n        - DE\n        - US\n        - CA\n      currencies:\n        - EUR\n        - USD\n        - CAD\n      languages:\n        - nl\n        - de\n        - en\n        - fr-CA\n      externalOauths:\n        - url: https://example.com/oauth/introspection\n          authorizationHeader: Bearer secret\n      messages:\n        - enabled: true\n      carts:\n        - countryTaxRateFallbackEnabled: false\n          deleteDaysAfterLastModification: 10\n          priceRoundingMode: HalfUp\n          taxRoundingMode: HalfUp\n      shoppingLists:\n        - deleteDaysAfterLastModification: 100\n      shippingRateInputType: CartClassification\n      enableSearchIndexProducts: true\n      enableSearchIndexOrders: true\n      enableSearchIndexCustomers: true\n      enableSearchIndexBusinessUnits: true\n      shippingRateCartClassificationValues:\n        - key: Small\n          label:\n            en: Small\n            nl: Klein\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"businessUnits":{"description":"Holds configuration specific to [Business Units](https://docs.commercetools.com/api/projects/business-units#ctp:api:type:BusinessUnit).\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsBusinessUnit:ProjectSettingsBusinessUnit"},"type":"array"},"carts":{"description":"[Carts Configuration](https://docs.commercetools.com/api/projects/project#cartsconfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsCart:ProjectSettingsCart"},"type":"array"},"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"currencies":{"description":"A three-digit currency code as per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","items":{"type":"string"},"type":"array"},"enableSearchIndexBusinessUnits":{"description":"Enable the Search Indexing of business  units\n","type":"boolean"},"enableSearchIndexCustomers":{"description":"Enable the Search Indexing of customers\n","type":"boolean"},"enableSearchIndexOrders":{"description":"Enable the Search Indexing of orders\n","type":"boolean"},"enableSearchIndexProductSearch":{"description":"Enable the Search Indexing of products\n","type":"boolean"},"enableSearchIndexProducts":{"description":"Enable the Search Indexing of product projections\n","type":"boolean"},"externalOauths":{"description":"[External OAUTH](https://docs.commercetools.com/api/projects/project#externaloauth)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsExternalOauth:ProjectSettingsExternalOauth"},"type":"array"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"messages":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsMessage:ProjectSettingsMessage"},"type":"array"},"name":{"description":"The name of the project\n","type":"string"},"shippingRateCartClassificationValues":{"description":"If shipping*rate*input*type is set to CartClassification these values are used to create tiers\n. Only a key defined inside the values array can be used to create a tier, or to set a value for the shippingRateInput on the cart. The keys are checked for uniqueness and the request is rejected if keys are not unique\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShippingRateCartClassificationValue:ProjectSettingsShippingRateCartClassificationValue"},"type":"array"},"shippingRateInputType":{"description":"Three ways to dynamically select a ShippingRatePriceTier exist. The CartValue type uses the sum of all line item prices, whereas CartClassification and CartScore use the shippingRateInput field on the cart to select a tier\n","type":"string"},"shoppingLists":{"description":"[Shopping List Configuration](https://docs.commercetools.com/api/projects/project#ctp:api:type:ShoppingListsConfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShoppingList:ProjectSettingsShoppingList"},"type":"array"}},"properties":{"businessUnits":{"description":"Holds configuration specific to [Business Units](https://docs.commercetools.com/api/projects/business-units#ctp:api:type:BusinessUnit).\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsBusinessUnit:ProjectSettingsBusinessUnit"},"type":"array"},"carts":{"description":"[Carts Configuration](https://docs.commercetools.com/api/projects/project#cartsconfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsCart:ProjectSettingsCart"},"type":"array"},"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"currencies":{"description":"A three-digit currency code as per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","items":{"type":"string"},"type":"array"},"enableSearchIndexBusinessUnits":{"description":"Enable the Search Indexing of business  units\n","type":"boolean"},"enableSearchIndexCustomers":{"description":"Enable the Search Indexing of customers\n","type":"boolean"},"enableSearchIndexOrders":{"description":"Enable the Search Indexing of orders\n","type":"boolean"},"enableSearchIndexProductSearch":{"description":"Enable the Search Indexing of products\n","type":"boolean"},"enableSearchIndexProducts":{"description":"Enable the Search Indexing of product projections\n","type":"boolean"},"externalOauths":{"description":"[External OAUTH](https://docs.commercetools.com/api/projects/project#externaloauth)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsExternalOauth:ProjectSettingsExternalOauth"},"type":"array"},"key":{"description":"The unique key of the project\n","type":"string"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"messages":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsMessage:ProjectSettingsMessage"},"type":"array"},"name":{"description":"The name of the project\n","type":"string"},"shippingRateCartClassificationValues":{"description":"If shipping*rate*input*type is set to CartClassification these values are used to create tiers\n. Only a key defined inside the values array can be used to create a tier, or to set a value for the shippingRateInput on the cart. The keys are checked for uniqueness and the request is rejected if keys are not unique\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShippingRateCartClassificationValue:ProjectSettingsShippingRateCartClassificationValue"},"type":"array"},"shippingRateInputType":{"description":"Three ways to dynamically select a ShippingRatePriceTier exist. The CartValue type uses the sum of all line item prices, whereas CartClassification and CartScore use the shippingRateInput field on the cart to select a tier\n","type":"string"},"shoppingLists":{"description":"[Shopping List Configuration](https://docs.commercetools.com/api/projects/project#ctp:api:type:ShoppingListsConfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShoppingList:ProjectSettingsShoppingList"},"type":"array"},"version":{"type":"number"}},"required":["countries","currencies","enableSearchIndexBusinessUnits","enableSearchIndexCustomers","enableSearchIndexOrders","enableSearchIndexProductSearch","enableSearchIndexProducts","key","languages","name","version"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectSettings resources.\n","properties":{"businessUnits":{"description":"Holds configuration specific to [Business Units](https://docs.commercetools.com/api/projects/business-units#ctp:api:type:BusinessUnit).\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsBusinessUnit:ProjectSettingsBusinessUnit"},"type":"array"},"carts":{"description":"[Carts Configuration](https://docs.commercetools.com/api/projects/project#cartsconfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsCart:ProjectSettingsCart"},"type":"array"},"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"currencies":{"description":"A three-digit currency code as per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","items":{"type":"string"},"type":"array"},"enableSearchIndexBusinessUnits":{"description":"Enable the Search Indexing of business  units\n","type":"boolean"},"enableSearchIndexCustomers":{"description":"Enable the Search Indexing of customers\n","type":"boolean"},"enableSearchIndexOrders":{"description":"Enable the Search Indexing of orders\n","type":"boolean"},"enableSearchIndexProductSearch":{"description":"Enable the Search Indexing of products\n","type":"boolean"},"enableSearchIndexProducts":{"description":"Enable the Search Indexing of product projections\n","type":"boolean"},"externalOauths":{"description":"[External OAUTH](https://docs.commercetools.com/api/projects/project#externaloauth)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsExternalOauth:ProjectSettingsExternalOauth"},"type":"array"},"key":{"description":"The unique key of the project\n","type":"string"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"messages":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsMessage:ProjectSettingsMessage"},"type":"array"},"name":{"description":"The name of the project\n","type":"string"},"shippingRateCartClassificationValues":{"description":"If shipping*rate*input*type is set to CartClassification these values are used to create tiers\n. Only a key defined inside the values array can be used to create a tier, or to set a value for the shippingRateInput on the cart. The keys are checked for uniqueness and the request is rejected if keys are not unique\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShippingRateCartClassificationValue:ProjectSettingsShippingRateCartClassificationValue"},"type":"array"},"shippingRateInputType":{"description":"Three ways to dynamically select a ShippingRatePriceTier exist. The CartValue type uses the sum of all line item prices, whereas CartClassification and CartScore use the shippingRateInput field on the cart to select a tier\n","type":"string"},"shoppingLists":{"description":"[Shopping List Configuration](https://docs.commercetools.com/api/projects/project#ctp:api:type:ShoppingListsConfiguration)\n","items":{"$ref":"#/types/commercetools:index%2FProjectSettingsShoppingList:ProjectSettingsShoppingList"},"type":"array"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/shippingMethod:ShippingMethod":{"description":"With Shipping Methods you can specify which shipping services you want to provide to your customers for deliveries to different areas of the world at rates you can define.\n\nSee also the [Shipping Methods API Documentation](https://docs.commercetools.com/api/projects/shippingMethods)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst some_tax_category = new commercetools.TaxCategory(\"some-tax-category\", {\n    key: \"some-tax-category-key\",\n    name: \"some test cateogry\",\n    description: \"test category\",\n});\nconst standard = new commercetools.ShippingMethod(\"standard\", {\n    key: \"standard-key\",\n    name: \"Standard tax category\",\n    description: \"Standard tax category\",\n    isDefault: true,\n    taxCategoryId: some_tax_category.taxCategoryId,\n    predicate: \"1 = 1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nsome_tax_category = commercetools.TaxCategory(\"some-tax-category\",\n    key=\"some-tax-category-key\",\n    name=\"some test cateogry\",\n    description=\"test category\")\nstandard = commercetools.ShippingMethod(\"standard\",\n    key=\"standard-key\",\n    name=\"Standard tax category\",\n    description=\"Standard tax category\",\n    is_default=True,\n    tax_category_id=some_tax_category.tax_category_id,\n    predicate=\"1 = 1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var some_tax_category = new Commercetools.TaxCategory(\"some-tax-category\", new()\n    {\n        Key = \"some-tax-category-key\",\n        Name = \"some test cateogry\",\n        Description = \"test category\",\n    });\n\n    var standard = new Commercetools.ShippingMethod(\"standard\", new()\n    {\n        Key = \"standard-key\",\n        Name = \"Standard tax category\",\n        Description = \"Standard tax category\",\n        IsDefault = true,\n        TaxCategoryId = some_tax_category.TaxCategoryId,\n        Predicate = \"1 = 1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsome_tax_category, err := commercetools.NewTaxCategory(ctx, \"some-tax-category\", &commercetools.TaxCategoryArgs{\n\t\t\tKey:         pulumi.String(\"some-tax-category-key\"),\n\t\t\tName:        pulumi.String(\"some test cateogry\"),\n\t\t\tDescription: pulumi.String(\"test category\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewShippingMethod(ctx, \"standard\", &commercetools.ShippingMethodArgs{\n\t\t\tKey:           pulumi.String(\"standard-key\"),\n\t\t\tName:          pulumi.String(\"Standard tax category\"),\n\t\t\tDescription:   pulumi.String(\"Standard tax category\"),\n\t\t\tIsDefault:     pulumi.Bool(true),\n\t\t\tTaxCategoryId: some_tax_category.TaxCategoryId,\n\t\t\tPredicate:     pulumi.String(\"1 = 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.commercetools.TaxCategory;\nimport com.pulumi.commercetools.TaxCategoryArgs;\nimport com.pulumi.commercetools.ShippingMethod;\nimport com.pulumi.commercetools.ShippingMethodArgs;\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 some_tax_category = new TaxCategory(\"some-tax-category\", TaxCategoryArgs.builder()\n            .key(\"some-tax-category-key\")\n            .name(\"some test cateogry\")\n            .description(\"test category\")\n            .build());\n\n        var standard = new ShippingMethod(\"standard\", ShippingMethodArgs.builder()\n            .key(\"standard-key\")\n            .name(\"Standard tax category\")\n            .description(\"Standard tax category\")\n            .isDefault(true)\n            .taxCategoryId(some_tax_category.taxCategoryId())\n            .predicate(\"1 = 1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  some-tax-category:\n    type: commercetools:TaxCategory\n    properties:\n      key: some-tax-category-key\n      name: some test cateogry\n      description: test category\n  standard:\n    type: commercetools:ShippingMethod\n    properties:\n      key: standard-key\n      name: Standard tax category\n      description: Standard tax category\n      isDefault: true\n      taxCategoryId: ${[\"some-tax-category\"].taxCategoryId}\n      predicate: 1 = 1\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"active":{"description":"Activate or deactivate a shipping method. Default is active.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FShippingMethodCustom:ShippingMethodCustom"},"description":{"type":"string"},"isDefault":{"description":"One shipping method in a project can be default\n","type":"boolean"},"key":{"description":"User-specific unique identifier for the shipping method\n","type":"string"},"localizedDescription":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"localizedName":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"name":{"type":"string"},"predicate":{"description":"A Cart predicate which can be used to more precisely select a shipping method for a cart\n","type":"string"},"shippingMethodId":{"description":"The ID of this resource.\n","type":"string"},"taxCategoryId":{"description":"ID of a [Tax Category](https://docs.commercetools.com/api/projects/taxCategories#taxcategory)\n","type":"string"}},"properties":{"active":{"description":"Activate or deactivate a shipping method. Default is active.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FShippingMethodCustom:ShippingMethodCustom"},"description":{"type":"string"},"isDefault":{"description":"One shipping method in a project can be default\n","type":"boolean"},"key":{"description":"User-specific unique identifier for the shipping method\n","type":"string"},"localizedDescription":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"localizedName":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"name":{"type":"string"},"predicate":{"description":"A Cart predicate which can be used to more precisely select a shipping method for a cart\n","type":"string"},"shippingMethodId":{"description":"The ID of this resource.\n","type":"string"},"taxCategoryId":{"description":"ID of a [Tax Category](https://docs.commercetools.com/api/projects/taxCategories#taxcategory)\n","type":"string"},"version":{"type":"number"}},"required":["name","shippingMethodId","taxCategoryId","version"],"requiredInputs":["taxCategoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ShippingMethod resources.\n","properties":{"active":{"description":"Activate or deactivate a shipping method. Default is active.\n","type":"boolean"},"custom":{"$ref":"#/types/commercetools:index%2FShippingMethodCustom:ShippingMethodCustom"},"description":{"type":"string"},"isDefault":{"description":"One shipping method in a project can be default\n","type":"boolean"},"key":{"description":"User-specific unique identifier for the shipping method\n","type":"string"},"localizedDescription":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"localizedName":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"name":{"type":"string"},"predicate":{"description":"A Cart predicate which can be used to more precisely select a shipping method for a cart\n","type":"string"},"shippingMethodId":{"description":"The ID of this resource.\n","type":"string"},"taxCategoryId":{"description":"ID of a [Tax Category](https://docs.commercetools.com/api/projects/taxCategories#taxcategory)\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/shippingZone:ShippingZone":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst de_us = new commercetools.ShippingZone(\"de-us\", {\n    key: \"some-key\",\n    name: \"DE and US\",\n    description: \"Germany and US\",\n    locations: [\n        {\n            country: \"DE\",\n        },\n        {\n            country: \"US\",\n            state: \"Nevada\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nde_us = commercetools.ShippingZone(\"de-us\",\n    key=\"some-key\",\n    name=\"DE and US\",\n    description=\"Germany and US\",\n    locations=[\n        {\n            \"country\": \"DE\",\n        },\n        {\n            \"country\": \"US\",\n            \"state\": \"Nevada\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var de_us = new Commercetools.ShippingZone(\"de-us\", new()\n    {\n        Key = \"some-key\",\n        Name = \"DE and US\",\n        Description = \"Germany and US\",\n        Locations = new[]\n        {\n            new Commercetools.Inputs.ShippingZoneLocationArgs\n            {\n                Country = \"DE\",\n            },\n            new Commercetools.Inputs.ShippingZoneLocationArgs\n            {\n                Country = \"US\",\n                State = \"Nevada\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewShippingZone(ctx, \"de-us\", &commercetools.ShippingZoneArgs{\n\t\t\tKey:         pulumi.String(\"some-key\"),\n\t\t\tName:        pulumi.String(\"DE and US\"),\n\t\t\tDescription: pulumi.String(\"Germany and US\"),\n\t\t\tLocations: commercetools.ShippingZoneLocationArray{\n\t\t\t\t&commercetools.ShippingZoneLocationArgs{\n\t\t\t\t\tCountry: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t&commercetools.ShippingZoneLocationArgs{\n\t\t\t\t\tCountry: pulumi.String(\"US\"),\n\t\t\t\t\tState:   pulumi.String(\"Nevada\"),\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.commercetools.ShippingZone;\nimport com.pulumi.commercetools.ShippingZoneArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneLocationArgs;\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 de_us = new ShippingZone(\"de-us\", ShippingZoneArgs.builder()\n            .key(\"some-key\")\n            .name(\"DE and US\")\n            .description(\"Germany and US\")\n            .locations(            \n                ShippingZoneLocationArgs.builder()\n                    .country(\"DE\")\n                    .build(),\n                ShippingZoneLocationArgs.builder()\n                    .country(\"US\")\n                    .state(\"Nevada\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  de-us:\n    type: commercetools:ShippingZone\n    properties:\n      key: some-key\n      name: DE and US\n      description: Germany and US\n      locations:\n        - country: DE\n        - country: US\n          state: Nevada\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for a zone. Must be unique across a project\n","type":"string"},"locations":{"description":"[Location](https://docs.commercetoolstools.pi/projects/zones#location)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneLocation:ShippingZoneLocation"},"type":"array"},"name":{"type":"string"},"shippingZoneId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for a zone. Must be unique across a project\n","type":"string"},"locations":{"description":"[Location](https://docs.commercetoolstools.pi/projects/zones#location)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneLocation:ShippingZoneLocation"},"type":"array"},"name":{"type":"string"},"shippingZoneId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"required":["name","shippingZoneId","version"],"stateInputs":{"description":"Input properties used for looking up and filtering ShippingZone resources.\n","properties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for a zone. Must be unique across a project\n","type":"string"},"locations":{"description":"[Location](https://docs.commercetoolstools.pi/projects/zones#location)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneLocation:ShippingZoneLocation"},"type":"array"},"name":{"type":"string"},"shippingZoneId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/shippingZoneRate:ShippingZoneRate":{"description":"Defines shipping rates (prices) for a specific zone.\n\nSee also [ZoneRate API Documentation](https://docs.commercetools.com/api/projects/shippingMethods#zonerate)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_tax_category = new commercetools.TaxCategory(\"my-tax-category\", {\n    key: \"some-tax-category-key\",\n    name: \"My tax category\",\n    description: \"Example\",\n});\nconst my_shipping_method = new commercetools.ShippingMethod(\"my-shipping-method\", {\n    key: \"some-shipping-method-key\",\n    name: \"My shipping method\",\n    description: \"Standard method\",\n    isDefault: true,\n    taxCategoryId: my_tax_category.taxCategoryId,\n    predicate: \"1 = 1\",\n});\nconst my_shipping_zone = new commercetools.ShippingZone(\"my-shipping-zone\", {\n    key: \"some-shipping-zone-key\",\n    name: \"DE\",\n    description: \"My shipping zone\",\n    locations: [{\n        country: \"DE\",\n    }],\n});\nconst my_shipping_zone_rate = new commercetools.ShippingZoneRate(\"my-shipping-zone-rate\", {\n    shippingMethodId: my_shipping_method.shippingMethodId,\n    shippingZoneId: my_shipping_zone.shippingZoneId,\n    price: {\n        centAmount: 5000,\n        currencyCode: \"EUR\",\n    },\n    freeAbove: {\n        centAmount: 50000,\n        currencyCode: \"EUR\",\n    },\n    shippingRatePriceTiers: [\n        {\n            type: \"CartScore\",\n            score: 10,\n            price: {\n                centAmount: 5000,\n                currencyCode: \"EUR\",\n            },\n        },\n        {\n            type: \"CartScore\",\n            score: 20,\n            price: {\n                centAmount: 2000,\n                currencyCode: \"EUR\",\n            },\n        },\n        {\n            type: \"CartScore\",\n            score: 30,\n            priceFunction: {\n                \"function\": \"x + 1\",\n                currencyCode: \"EUR\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_tax_category = commercetools.TaxCategory(\"my-tax-category\",\n    key=\"some-tax-category-key\",\n    name=\"My tax category\",\n    description=\"Example\")\nmy_shipping_method = commercetools.ShippingMethod(\"my-shipping-method\",\n    key=\"some-shipping-method-key\",\n    name=\"My shipping method\",\n    description=\"Standard method\",\n    is_default=True,\n    tax_category_id=my_tax_category.tax_category_id,\n    predicate=\"1 = 1\")\nmy_shipping_zone = commercetools.ShippingZone(\"my-shipping-zone\",\n    key=\"some-shipping-zone-key\",\n    name=\"DE\",\n    description=\"My shipping zone\",\n    locations=[{\n        \"country\": \"DE\",\n    }])\nmy_shipping_zone_rate = commercetools.ShippingZoneRate(\"my-shipping-zone-rate\",\n    shipping_method_id=my_shipping_method.shipping_method_id,\n    shipping_zone_id=my_shipping_zone.shipping_zone_id,\n    price={\n        \"cent_amount\": 5000,\n        \"currency_code\": \"EUR\",\n    },\n    free_above={\n        \"cent_amount\": 50000,\n        \"currency_code\": \"EUR\",\n    },\n    shipping_rate_price_tiers=[\n        {\n            \"type\": \"CartScore\",\n            \"score\": 10,\n            \"price\": {\n                \"cent_amount\": 5000,\n                \"currency_code\": \"EUR\",\n            },\n        },\n        {\n            \"type\": \"CartScore\",\n            \"score\": 20,\n            \"price\": {\n                \"cent_amount\": 2000,\n                \"currency_code\": \"EUR\",\n            },\n        },\n        {\n            \"type\": \"CartScore\",\n            \"score\": 30,\n            \"price_function\": {\n                \"function\": \"x + 1\",\n                \"currency_code\": \"EUR\",\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_tax_category = new Commercetools.TaxCategory(\"my-tax-category\", new()\n    {\n        Key = \"some-tax-category-key\",\n        Name = \"My tax category\",\n        Description = \"Example\",\n    });\n\n    var my_shipping_method = new Commercetools.ShippingMethod(\"my-shipping-method\", new()\n    {\n        Key = \"some-shipping-method-key\",\n        Name = \"My shipping method\",\n        Description = \"Standard method\",\n        IsDefault = true,\n        TaxCategoryId = my_tax_category.TaxCategoryId,\n        Predicate = \"1 = 1\",\n    });\n\n    var my_shipping_zone = new Commercetools.ShippingZone(\"my-shipping-zone\", new()\n    {\n        Key = \"some-shipping-zone-key\",\n        Name = \"DE\",\n        Description = \"My shipping zone\",\n        Locations = new[]\n        {\n            new Commercetools.Inputs.ShippingZoneLocationArgs\n            {\n                Country = \"DE\",\n            },\n        },\n    });\n\n    var my_shipping_zone_rate = new Commercetools.ShippingZoneRate(\"my-shipping-zone-rate\", new()\n    {\n        ShippingMethodId = my_shipping_method.ShippingMethodId,\n        ShippingZoneId = my_shipping_zone.ShippingZoneId,\n        Price = new Commercetools.Inputs.ShippingZoneRatePriceArgs\n        {\n            CentAmount = 5000,\n            CurrencyCode = \"EUR\",\n        },\n        FreeAbove = new Commercetools.Inputs.ShippingZoneRateFreeAboveArgs\n        {\n            CentAmount = 50000,\n            CurrencyCode = \"EUR\",\n        },\n        ShippingRatePriceTiers = new[]\n        {\n            new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierArgs\n            {\n                Type = \"CartScore\",\n                Score = 10,\n                Price = new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierPriceArgs\n                {\n                    CentAmount = 5000,\n                    CurrencyCode = \"EUR\",\n                },\n            },\n            new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierArgs\n            {\n                Type = \"CartScore\",\n                Score = 20,\n                Price = new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierPriceArgs\n                {\n                    CentAmount = 2000,\n                    CurrencyCode = \"EUR\",\n                },\n            },\n            new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierArgs\n            {\n                Type = \"CartScore\",\n                Score = 30,\n                PriceFunction = new Commercetools.Inputs.ShippingZoneRateShippingRatePriceTierPriceFunctionArgs\n                {\n                    Function = \"x + 1\",\n                    CurrencyCode = \"EUR\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_tax_category, err := commercetools.NewTaxCategory(ctx, \"my-tax-category\", &commercetools.TaxCategoryArgs{\n\t\t\tKey:         pulumi.String(\"some-tax-category-key\"),\n\t\t\tName:        pulumi.String(\"My tax category\"),\n\t\t\tDescription: pulumi.String(\"Example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_shipping_method, err := commercetools.NewShippingMethod(ctx, \"my-shipping-method\", &commercetools.ShippingMethodArgs{\n\t\t\tKey:           pulumi.String(\"some-shipping-method-key\"),\n\t\t\tName:          pulumi.String(\"My shipping method\"),\n\t\t\tDescription:   pulumi.String(\"Standard method\"),\n\t\t\tIsDefault:     pulumi.Bool(true),\n\t\t\tTaxCategoryId: my_tax_category.TaxCategoryId,\n\t\t\tPredicate:     pulumi.String(\"1 = 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_shipping_zone, err := commercetools.NewShippingZone(ctx, \"my-shipping-zone\", &commercetools.ShippingZoneArgs{\n\t\t\tKey:         pulumi.String(\"some-shipping-zone-key\"),\n\t\t\tName:        pulumi.String(\"DE\"),\n\t\t\tDescription: pulumi.String(\"My shipping zone\"),\n\t\t\tLocations: commercetools.ShippingZoneLocationArray{\n\t\t\t\t&commercetools.ShippingZoneLocationArgs{\n\t\t\t\t\tCountry: pulumi.String(\"DE\"),\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 = commercetools.NewShippingZoneRate(ctx, \"my-shipping-zone-rate\", &commercetools.ShippingZoneRateArgs{\n\t\t\tShippingMethodId: my_shipping_method.ShippingMethodId,\n\t\t\tShippingZoneId:   my_shipping_zone.ShippingZoneId,\n\t\t\tPrice: &commercetools.ShippingZoneRatePriceArgs{\n\t\t\t\tCentAmount:   pulumi.Float64(5000),\n\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\n\t\t\t},\n\t\t\tFreeAbove: &commercetools.ShippingZoneRateFreeAboveArgs{\n\t\t\t\tCentAmount:   pulumi.Float64(50000),\n\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\n\t\t\t},\n\t\t\tShippingRatePriceTiers: commercetools.ShippingZoneRateShippingRatePriceTierArray{\n\t\t\t\t&commercetools.ShippingZoneRateShippingRatePriceTierArgs{\n\t\t\t\t\tType:  pulumi.String(\"CartScore\"),\n\t\t\t\t\tScore: pulumi.Float64(10),\n\t\t\t\t\tPrice: &commercetools.ShippingZoneRateShippingRatePriceTierPriceArgs{\n\t\t\t\t\t\tCentAmount:   pulumi.Float64(5000),\n\t\t\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.ShippingZoneRateShippingRatePriceTierArgs{\n\t\t\t\t\tType:  pulumi.String(\"CartScore\"),\n\t\t\t\t\tScore: pulumi.Float64(20),\n\t\t\t\t\tPrice: &commercetools.ShippingZoneRateShippingRatePriceTierPriceArgs{\n\t\t\t\t\t\tCentAmount:   pulumi.Float64(2000),\n\t\t\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.ShippingZoneRateShippingRatePriceTierArgs{\n\t\t\t\t\tType:  pulumi.String(\"CartScore\"),\n\t\t\t\t\tScore: pulumi.Float64(30),\n\t\t\t\t\tPriceFunction: &commercetools.ShippingZoneRateShippingRatePriceTierPriceFunctionArgs{\n\t\t\t\t\t\tFunction:     pulumi.String(\"x + 1\"),\n\t\t\t\t\t\tCurrencyCode: pulumi.String(\"EUR\"),\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.commercetools.TaxCategory;\nimport com.pulumi.commercetools.TaxCategoryArgs;\nimport com.pulumi.commercetools.ShippingMethod;\nimport com.pulumi.commercetools.ShippingMethodArgs;\nimport com.pulumi.commercetools.ShippingZone;\nimport com.pulumi.commercetools.ShippingZoneArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneLocationArgs;\nimport com.pulumi.commercetools.ShippingZoneRate;\nimport com.pulumi.commercetools.ShippingZoneRateArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneRatePriceArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneRateFreeAboveArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneRateShippingRatePriceTierArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneRateShippingRatePriceTierPriceArgs;\nimport com.pulumi.commercetools.inputs.ShippingZoneRateShippingRatePriceTierPriceFunctionArgs;\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 my_tax_category = new TaxCategory(\"my-tax-category\", TaxCategoryArgs.builder()\n            .key(\"some-tax-category-key\")\n            .name(\"My tax category\")\n            .description(\"Example\")\n            .build());\n\n        var my_shipping_method = new ShippingMethod(\"my-shipping-method\", ShippingMethodArgs.builder()\n            .key(\"some-shipping-method-key\")\n            .name(\"My shipping method\")\n            .description(\"Standard method\")\n            .isDefault(true)\n            .taxCategoryId(my_tax_category.taxCategoryId())\n            .predicate(\"1 = 1\")\n            .build());\n\n        var my_shipping_zone = new ShippingZone(\"my-shipping-zone\", ShippingZoneArgs.builder()\n            .key(\"some-shipping-zone-key\")\n            .name(\"DE\")\n            .description(\"My shipping zone\")\n            .locations(ShippingZoneLocationArgs.builder()\n                .country(\"DE\")\n                .build())\n            .build());\n\n        var my_shipping_zone_rate = new ShippingZoneRate(\"my-shipping-zone-rate\", ShippingZoneRateArgs.builder()\n            .shippingMethodId(my_shipping_method.shippingMethodId())\n            .shippingZoneId(my_shipping_zone.shippingZoneId())\n            .price(ShippingZoneRatePriceArgs.builder()\n                .centAmount(5000.0)\n                .currencyCode(\"EUR\")\n                .build())\n            .freeAbove(ShippingZoneRateFreeAboveArgs.builder()\n                .centAmount(50000.0)\n                .currencyCode(\"EUR\")\n                .build())\n            .shippingRatePriceTiers(            \n                ShippingZoneRateShippingRatePriceTierArgs.builder()\n                    .type(\"CartScore\")\n                    .score(10.0)\n                    .price(ShippingZoneRateShippingRatePriceTierPriceArgs.builder()\n                        .centAmount(5000.0)\n                        .currencyCode(\"EUR\")\n                        .build())\n                    .build(),\n                ShippingZoneRateShippingRatePriceTierArgs.builder()\n                    .type(\"CartScore\")\n                    .score(20.0)\n                    .price(ShippingZoneRateShippingRatePriceTierPriceArgs.builder()\n                        .centAmount(2000.0)\n                        .currencyCode(\"EUR\")\n                        .build())\n                    .build(),\n                ShippingZoneRateShippingRatePriceTierArgs.builder()\n                    .type(\"CartScore\")\n                    .score(30.0)\n                    .priceFunction(ShippingZoneRateShippingRatePriceTierPriceFunctionArgs.builder()\n                        .function(\"x + 1\")\n                        .currencyCode(\"EUR\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-tax-category:\n    type: commercetools:TaxCategory\n    properties:\n      key: some-tax-category-key\n      name: My tax category\n      description: Example\n  my-shipping-method:\n    type: commercetools:ShippingMethod\n    properties:\n      key: some-shipping-method-key\n      name: My shipping method\n      description: Standard method\n      isDefault: true\n      taxCategoryId: ${[\"my-tax-category\"].taxCategoryId}\n      predicate: 1 = 1\n  my-shipping-zone:\n    type: commercetools:ShippingZone\n    properties:\n      key: some-shipping-zone-key\n      name: DE\n      description: My shipping zone\n      locations:\n        - country: DE\n  my-shipping-zone-rate:\n    type: commercetools:ShippingZoneRate\n    properties:\n      shippingMethodId: ${[\"my-shipping-method\"].shippingMethodId}\n      shippingZoneId: ${[\"my-shipping-zone\"].shippingZoneId}\n      price:\n        centAmount: 5000\n        currencyCode: EUR\n      freeAbove:\n        centAmount: 50000\n        currencyCode: EUR\n      shippingRatePriceTiers:\n        - type: CartScore\n          score: 10\n          price:\n            centAmount: 5000\n            currencyCode: EUR\n        - type: CartScore\n          score: 20\n          price:\n            centAmount: 2000\n            currencyCode: EUR\n        - type: CartScore\n          score: 30\n          priceFunction:\n            function: x + 1\n            currencyCode: EUR\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import commercetools:index/shippingZoneRate:ShippingZoneRate my-shipping-zone-rate {my-shipping-method-id}@{my-shipping-zone-id}@{currency}\n```\n\n","inputProperties":{"freeAbove":{"$ref":"#/types/commercetools:index%2FShippingZoneRateFreeAbove:ShippingZoneRateFreeAbove","description":"The shipping is free if the sum of the (custom) line item prices reaches the freeAbove value\n"},"price":{"$ref":"#/types/commercetools:index%2FShippingZoneRatePrice:ShippingZoneRatePrice"},"shippingMethodId":{"type":"string"},"shippingRatePriceTiers":{"description":"A price tier is selected instead of the default price when a certain threshold or specific cart value is reached. If no tiered price is suitable for the cart, the base price of the shipping rate is used\n. See also [Shipping Rate Price Tier API Docs](https://docs.commercetools.com/api/projects/shippingMethods#shippingratepricetier)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneRateShippingRatePriceTier:ShippingZoneRateShippingRatePriceTier"},"type":"array"},"shippingZoneId":{"type":"string"},"shippingZoneRateId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"freeAbove":{"$ref":"#/types/commercetools:index%2FShippingZoneRateFreeAbove:ShippingZoneRateFreeAbove","description":"The shipping is free if the sum of the (custom) line item prices reaches the freeAbove value\n"},"price":{"$ref":"#/types/commercetools:index%2FShippingZoneRatePrice:ShippingZoneRatePrice"},"shippingMethodId":{"type":"string"},"shippingRatePriceTiers":{"description":"A price tier is selected instead of the default price when a certain threshold or specific cart value is reached. If no tiered price is suitable for the cart, the base price of the shipping rate is used\n. See also [Shipping Rate Price Tier API Docs](https://docs.commercetools.com/api/projects/shippingMethods#shippingratepricetier)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneRateShippingRatePriceTier:ShippingZoneRateShippingRatePriceTier"},"type":"array"},"shippingZoneId":{"type":"string"},"shippingZoneRateId":{"description":"The ID of this resource.\n","type":"string"}},"required":["price","shippingMethodId","shippingZoneId","shippingZoneRateId"],"requiredInputs":["price","shippingMethodId","shippingZoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering ShippingZoneRate resources.\n","properties":{"freeAbove":{"$ref":"#/types/commercetools:index%2FShippingZoneRateFreeAbove:ShippingZoneRateFreeAbove","description":"The shipping is free if the sum of the (custom) line item prices reaches the freeAbove value\n"},"price":{"$ref":"#/types/commercetools:index%2FShippingZoneRatePrice:ShippingZoneRatePrice"},"shippingMethodId":{"type":"string"},"shippingRatePriceTiers":{"description":"A price tier is selected instead of the default price when a certain threshold or specific cart value is reached. If no tiered price is suitable for the cart, the base price of the shipping rate is used\n. See also [Shipping Rate Price Tier API Docs](https://docs.commercetools.com/api/projects/shippingMethods#shippingratepricetier)\n","items":{"$ref":"#/types/commercetools:index%2FShippingZoneRateShippingRatePriceTier:ShippingZoneRateShippingRatePriceTier"},"type":"array"},"shippingZoneId":{"type":"string"},"shippingZoneRateId":{"description":"The ID of this resource.\n","type":"string"}},"type":"object"},"type":"object"},"commercetools:index/state:State":{"description":"The commercetools platform allows you to model states of certain objects, such as orders, line items, products, reviews, and payments to define finite state machines reflecting the business logic you'd like to implement.\n\nSee also the [State API Documentation](https://docs.commercetools.com/api/projects/states)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst reviewUnreviewed = new commercetools.State(\"review_unreviewed\", {\n    key: \"review-unreviewed\",\n    type: \"ReviewState\",\n    name: {\n        en: \"Unreviewed\",\n    },\n    description: {\n        en: \"Not reviewed yet\",\n    },\n    initial: true,\n    roles: [\"ReviewIncludedInStatistics\"],\n});\nconst productForSale = new commercetools.State(\"product_for_sale\", {\n    key: \"product-for-sale\",\n    type: \"ProductState\",\n    name: {\n        en: \"For Sale\",\n    },\n    description: {\n        en: \"Regularly stocked product.\",\n    },\n    initial: true,\n});\nconst productClearance = new commercetools.State(\"product_clearance\", {\n    key: \"product-clearance\",\n    type: \"ProductState\",\n    name: {\n        en: \"On Clearance\",\n    },\n    description: {\n        en: \"The product line will not be ordered again.\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nreview_unreviewed = commercetools.State(\"review_unreviewed\",\n    key=\"review-unreviewed\",\n    type=\"ReviewState\",\n    name={\n        \"en\": \"Unreviewed\",\n    },\n    description={\n        \"en\": \"Not reviewed yet\",\n    },\n    initial=True,\n    roles=[\"ReviewIncludedInStatistics\"])\nproduct_for_sale = commercetools.State(\"product_for_sale\",\n    key=\"product-for-sale\",\n    type=\"ProductState\",\n    name={\n        \"en\": \"For Sale\",\n    },\n    description={\n        \"en\": \"Regularly stocked product.\",\n    },\n    initial=True)\nproduct_clearance = commercetools.State(\"product_clearance\",\n    key=\"product-clearance\",\n    type=\"ProductState\",\n    name={\n        \"en\": \"On Clearance\",\n    },\n    description={\n        \"en\": \"The product line will not be ordered again.\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var reviewUnreviewed = new Commercetools.State(\"review_unreviewed\", new()\n    {\n        Key = \"review-unreviewed\",\n        Type = \"ReviewState\",\n        Name = \n        {\n            { \"en\", \"Unreviewed\" },\n        },\n        Description = \n        {\n            { \"en\", \"Not reviewed yet\" },\n        },\n        Initial = true,\n        Roles = new[]\n        {\n            \"ReviewIncludedInStatistics\",\n        },\n    });\n\n    var productForSale = new Commercetools.State(\"product_for_sale\", new()\n    {\n        Key = \"product-for-sale\",\n        Type = \"ProductState\",\n        Name = \n        {\n            { \"en\", \"For Sale\" },\n        },\n        Description = \n        {\n            { \"en\", \"Regularly stocked product.\" },\n        },\n        Initial = true,\n    });\n\n    var productClearance = new Commercetools.State(\"product_clearance\", new()\n    {\n        Key = \"product-clearance\",\n        Type = \"ProductState\",\n        Name = \n        {\n            { \"en\", \"On Clearance\" },\n        },\n        Description = \n        {\n            { \"en\", \"The product line will not be ordered again.\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewState(ctx, \"review_unreviewed\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"review-unreviewed\"),\n\t\t\tType: pulumi.String(\"ReviewState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Unreviewed\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Not reviewed yet\"),\n\t\t\t},\n\t\t\tInitial: pulumi.Bool(true),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ReviewIncludedInStatistics\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewState(ctx, \"product_for_sale\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"product-for-sale\"),\n\t\t\tType: pulumi.String(\"ProductState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"For Sale\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Regularly stocked product.\"),\n\t\t\t},\n\t\t\tInitial: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewState(ctx, \"product_clearance\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"product-clearance\"),\n\t\t\tType: pulumi.String(\"ProductState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"On Clearance\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"The product line will not be ordered again.\"),\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.commercetools.State;\nimport com.pulumi.commercetools.StateArgs;\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 reviewUnreviewed = new State(\"reviewUnreviewed\", StateArgs.builder()\n            .key(\"review-unreviewed\")\n            .type(\"ReviewState\")\n            .name(Map.of(\"en\", \"Unreviewed\"))\n            .description(Map.of(\"en\", \"Not reviewed yet\"))\n            .initial(true)\n            .roles(\"ReviewIncludedInStatistics\")\n            .build());\n\n        var productForSale = new State(\"productForSale\", StateArgs.builder()\n            .key(\"product-for-sale\")\n            .type(\"ProductState\")\n            .name(Map.of(\"en\", \"For Sale\"))\n            .description(Map.of(\"en\", \"Regularly stocked product.\"))\n            .initial(true)\n            .build());\n\n        var productClearance = new State(\"productClearance\", StateArgs.builder()\n            .key(\"product-clearance\")\n            .type(\"ProductState\")\n            .name(Map.of(\"en\", \"On Clearance\"))\n            .description(Map.of(\"en\", \"The product line will not be ordered again.\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  reviewUnreviewed:\n    type: commercetools:State\n    name: review_unreviewed\n    properties:\n      key: review-unreviewed\n      type: ReviewState\n      name:\n        en: Unreviewed\n      description:\n        en: Not reviewed yet\n      initial: true\n      roles:\n        - ReviewIncludedInStatistics\n  productForSale:\n    type: commercetools:State\n    name: product_for_sale\n    properties:\n      key: product-for-sale\n      type: ProductState\n      name:\n        en: For Sale\n      description:\n        en: Regularly stocked product.\n      initial: true\n  productClearance:\n    type: commercetools:State\n    name: product_clearance\n    properties:\n      key: product-clearance\n      type: ProductState\n      name:\n        en: On Clearance\n      description:\n        en: The product line will not be ordered again.\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"initial":{"description":"A state can be declared as an initial state for any state machine. When a workflow starts, this first state must be an initial state\n","type":"boolean"},"key":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"},"roles":{"description":"[State Role](https://docs.commercetools.com/api/projects/states#staterole)\n","items":{"type":"string"},"type":"array"},"type":{"description":"[StateType](https://docs.commercetools.com/api/projects/states#statetype)\n","type":"string"}},"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"initial":{"description":"A state can be declared as an initial state for any state machine. When a workflow starts, this first state must be an initial state\n","type":"boolean"},"key":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"},"roles":{"description":"[State Role](https://docs.commercetools.com/api/projects/states#staterole)\n","items":{"type":"string"},"type":"array"},"type":{"description":"[StateType](https://docs.commercetools.com/api/projects/states#statetype)\n","type":"string"},"version":{"type":"number"}},"required":["initial","type","version"],"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering State resources.\n","properties":{"description":{"additionalProperties":{"type":"string"},"description":"Description of the State as localized string.\n","type":"object"},"initial":{"description":"A state can be declared as an initial state for any state machine. When a workflow starts, this first state must be an initial state\n","type":"boolean"},"key":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Name of the State as localized string.\n","type":"object"},"roles":{"description":"[State Role](https://docs.commercetools.com/api/projects/states#staterole)\n","items":{"type":"string"},"type":"array"},"type":{"description":"[StateType](https://docs.commercetools.com/api/projects/states#statetype)\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/stateTransitions:StateTransitions":{"description":"Transitions are a way to describe possible transformations of the current state to other states of the same type (for example: Initial > Shipped). When performing a transitionState update action and transitions is set, the currently referenced state must have a transition to the new state.\nIf transitions is an empty list, it means the current state is a final state and no further transitions are allowed.\nIf transitions is not set, the validation is turned off. When performing a transitionState update action, any other state of the same type can be transitioned to.\n\nNote: Only one resource can be created for each state\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst productForSale = new commercetools.State(\"product_for_sale\", {\n    key: \"product-for-sale\",\n    type: \"ProductState\",\n    name: {\n        en: \"For Sale\",\n    },\n    description: {\n        en: \"Regularly stocked product.\",\n    },\n    initial: true,\n});\nconst productClearance = new commercetools.State(\"product_clearance\", {\n    key: \"product-clearance\",\n    type: \"ProductState\",\n    name: {\n        en: \"On Clearance\",\n    },\n    description: {\n        en: \"The product line will not be ordered again.\",\n    },\n});\n// Only allow transition from sale to clearance\nconst transition1 = new commercetools.StateTransitions(\"transition_1\", {\n    from: productForSale.id,\n    tos: [productClearance.id],\n});\n// Disable transitions from product clearance to other\nconst transition2 = new commercetools.StateTransitions(\"transition_2\", {\n    from: productClearance.id,\n    tos: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nproduct_for_sale = commercetools.State(\"product_for_sale\",\n    key=\"product-for-sale\",\n    type=\"ProductState\",\n    name={\n        \"en\": \"For Sale\",\n    },\n    description={\n        \"en\": \"Regularly stocked product.\",\n    },\n    initial=True)\nproduct_clearance = commercetools.State(\"product_clearance\",\n    key=\"product-clearance\",\n    type=\"ProductState\",\n    name={\n        \"en\": \"On Clearance\",\n    },\n    description={\n        \"en\": \"The product line will not be ordered again.\",\n    })\n# Only allow transition from sale to clearance\ntransition1 = commercetools.StateTransitions(\"transition_1\",\n    from_=product_for_sale.id,\n    tos=[product_clearance.id])\n# Disable transitions from product clearance to other\ntransition2 = commercetools.StateTransitions(\"transition_2\",\n    from_=product_clearance.id,\n    tos=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var productForSale = new Commercetools.State(\"product_for_sale\", new()\n    {\n        Key = \"product-for-sale\",\n        Type = \"ProductState\",\n        Name = \n        {\n            { \"en\", \"For Sale\" },\n        },\n        Description = \n        {\n            { \"en\", \"Regularly stocked product.\" },\n        },\n        Initial = true,\n    });\n\n    var productClearance = new Commercetools.State(\"product_clearance\", new()\n    {\n        Key = \"product-clearance\",\n        Type = \"ProductState\",\n        Name = \n        {\n            { \"en\", \"On Clearance\" },\n        },\n        Description = \n        {\n            { \"en\", \"The product line will not be ordered again.\" },\n        },\n    });\n\n    // Only allow transition from sale to clearance\n    var transition1 = new Commercetools.StateTransitions(\"transition_1\", new()\n    {\n        From = productForSale.Id,\n        Tos = new[]\n        {\n            productClearance.Id,\n        },\n    });\n\n    // Disable transitions from product clearance to other\n    var transition2 = new Commercetools.StateTransitions(\"transition_2\", new()\n    {\n        From = productClearance.Id,\n        Tos = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproductForSale, err := commercetools.NewState(ctx, \"product_for_sale\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"product-for-sale\"),\n\t\t\tType: pulumi.String(\"ProductState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"For Sale\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Regularly stocked product.\"),\n\t\t\t},\n\t\t\tInitial: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproductClearance, err := commercetools.NewState(ctx, \"product_clearance\", &commercetools.StateArgs{\n\t\t\tKey:  pulumi.String(\"product-clearance\"),\n\t\t\tType: pulumi.String(\"ProductState\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"On Clearance\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"The product line will not be ordered again.\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Only allow transition from sale to clearance\n\t\t_, err = commercetools.NewStateTransitions(ctx, \"transition_1\", &commercetools.StateTransitionsArgs{\n\t\t\tFrom: productForSale.ID(),\n\t\t\tTos: pulumi.StringArray{\n\t\t\t\tproductClearance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Disable transitions from product clearance to other\n\t\t_, err = commercetools.NewStateTransitions(ctx, \"transition_2\", &commercetools.StateTransitionsArgs{\n\t\t\tFrom: productClearance.ID(),\n\t\t\tTos:  pulumi.StringArray{},\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.commercetools.State;\nimport com.pulumi.commercetools.StateArgs;\nimport com.pulumi.commercetools.StateTransitions;\nimport com.pulumi.commercetools.StateTransitionsArgs;\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 productForSale = new State(\"productForSale\", StateArgs.builder()\n            .key(\"product-for-sale\")\n            .type(\"ProductState\")\n            .name(Map.of(\"en\", \"For Sale\"))\n            .description(Map.of(\"en\", \"Regularly stocked product.\"))\n            .initial(true)\n            .build());\n\n        var productClearance = new State(\"productClearance\", StateArgs.builder()\n            .key(\"product-clearance\")\n            .type(\"ProductState\")\n            .name(Map.of(\"en\", \"On Clearance\"))\n            .description(Map.of(\"en\", \"The product line will not be ordered again.\"))\n            .build());\n\n        // Only allow transition from sale to clearance\n        var transition1 = new StateTransitions(\"transition1\", StateTransitionsArgs.builder()\n            .from(productForSale.id())\n            .tos(productClearance.id())\n            .build());\n\n        // Disable transitions from product clearance to other\n        var transition2 = new StateTransitions(\"transition2\", StateTransitionsArgs.builder()\n            .from(productClearance.id())\n            .tos()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  productForSale:\n    type: commercetools:State\n    name: product_for_sale\n    properties:\n      key: product-for-sale\n      type: ProductState\n      name:\n        en: For Sale\n      description:\n        en: Regularly stocked product.\n      initial: true\n  productClearance:\n    type: commercetools:State\n    name: product_clearance\n    properties:\n      key: product-clearance\n      type: ProductState\n      name:\n        en: On Clearance\n      description:\n        en: The product line will not be ordered again.\n  # Only allow transition from sale to clearance\n  transition1:\n    type: commercetools:StateTransitions\n    name: transition_1\n    properties:\n      from: ${productForSale.id}\n      tos:\n        - ${productClearance.id}\n  # Disable transitions from product clearance to other\n  transition2:\n    type: commercetools:StateTransitions\n    name: transition_2\n    properties:\n      from: ${productClearance.id}\n      tos: []\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"from":{"description":"ID of the state to transition from\n","type":"string"},"tos":{"description":"Transitions are a way to describe possible transformations of the current state to other states of the same type (for example: Initial > Shipped). When performing a transitionState update action and transitions is set, the currently referenced state must have a transition to the new state.\nIf transitions is an empty list, it means the current state is a final state and no further transitions are allowed.\nIf transitions is not set, the validation is turned off. When performing a transitionState update action, any other state of the same type can be transitioned to\n","items":{"type":"string"},"type":"array"}},"properties":{"from":{"description":"ID of the state to transition from\n","type":"string"},"tos":{"description":"Transitions are a way to describe possible transformations of the current state to other states of the same type (for example: Initial > Shipped). When performing a transitionState update action and transitions is set, the currently referenced state must have a transition to the new state.\nIf transitions is an empty list, it means the current state is a final state and no further transitions are allowed.\nIf transitions is not set, the validation is turned off. When performing a transitionState update action, any other state of the same type can be transitioned to\n","items":{"type":"string"},"type":"array"}},"required":["from","tos"],"requiredInputs":["from","tos"],"stateInputs":{"description":"Input properties used for looking up and filtering StateTransitions resources.\n","properties":{"from":{"description":"ID of the state to transition from\n","type":"string"},"tos":{"description":"Transitions are a way to describe possible transformations of the current state to other states of the same type (for example: Initial > Shipped). When performing a transitionState update action and transitions is set, the currently referenced state must have a transition to the new state.\nIf transitions is an empty list, it means the current state is a final state and no further transitions are allowed.\nIf transitions is not set, the validation is turned off. When performing a transitionState update action, any other state of the same type can be transitioned to\n","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"object"},"commercetools:index/store:Store":{"description":"Stores can be used to model, for example, physical retail locations, brand stores, or country-specific stores.\n\nSee also the [Stores API Documentation](https://docs.commercetools.com/api/projects/stores)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst us_supply_channel = new commercetools.Channel(\"us-supply-channel\", {\n    key: \"US-SUP\",\n    roles: [\"InventorySupply\"],\n    name: {\n        \"en-US\": \"Supply channel\",\n    },\n    description: {\n        \"en-US\": \"Supply channel desc\",\n    },\n});\nconst us_dist_channel = new commercetools.Channel(\"us-dist-channel\", {\n    key: \"US-DIST\",\n    roles: [\"ProductDistribution\"],\n    name: {\n        \"en-US\": \"Dist channel\",\n    },\n    description: {\n        \"en-US\": \"Dist channel desc\",\n    },\n});\nconst my_store_type = new commercetools.Type(\"my-store-type\", {\n    key: \"my-custom-store-type\",\n    name: {\n        en: \"My Store Type\",\n    },\n    description: {\n        en: \"A custom store type\",\n    },\n    resourceTypeIds: [\"store\"],\n    fields: [{\n        name: \"some-field\",\n        label: {\n            en: \"Some Field\",\n        },\n        type: {\n            name: \"String\",\n        },\n    }],\n});\nconst my_store = new commercetools.Store(\"my-store\", {\n    key: \"my-store\",\n    name: {\n        \"en-US\": \"My store\",\n    },\n    countries: [\n        \"NL\",\n        \"BE\",\n    ],\n    languages: [\"en-US\"],\n    distributionChannels: [\"US-DIST\"],\n    supplyChannels: [\"US-SUP\"],\n    custom: {\n        typeId: my_store_type.typeId,\n        fields: {\n            \"my-field\": \"ja\",\n        },\n    },\n}, {\n    dependsOn: [\n        us_supply_channel,\n        us_dist_channel,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nus_supply_channel = commercetools.Channel(\"us-supply-channel\",\n    key=\"US-SUP\",\n    roles=[\"InventorySupply\"],\n    name={\n        \"en-US\": \"Supply channel\",\n    },\n    description={\n        \"en-US\": \"Supply channel desc\",\n    })\nus_dist_channel = commercetools.Channel(\"us-dist-channel\",\n    key=\"US-DIST\",\n    roles=[\"ProductDistribution\"],\n    name={\n        \"en-US\": \"Dist channel\",\n    },\n    description={\n        \"en-US\": \"Dist channel desc\",\n    })\nmy_store_type = commercetools.Type(\"my-store-type\",\n    key=\"my-custom-store-type\",\n    name={\n        \"en\": \"My Store Type\",\n    },\n    description={\n        \"en\": \"A custom store type\",\n    },\n    resource_type_ids=[\"store\"],\n    fields=[{\n        \"name\": \"some-field\",\n        \"label\": {\n            \"en\": \"Some Field\",\n        },\n        \"type\": {\n            \"name\": \"String\",\n        },\n    }])\nmy_store = commercetools.Store(\"my-store\",\n    key=\"my-store\",\n    name={\n        \"en-US\": \"My store\",\n    },\n    countries=[\n        \"NL\",\n        \"BE\",\n    ],\n    languages=[\"en-US\"],\n    distribution_channels=[\"US-DIST\"],\n    supply_channels=[\"US-SUP\"],\n    custom={\n        \"type_id\": my_store_type.type_id,\n        \"fields\": {\n            \"my-field\": \"ja\",\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[\n            us_supply_channel,\n            us_dist_channel,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var us_supply_channel = new Commercetools.Channel(\"us-supply-channel\", new()\n    {\n        Key = \"US-SUP\",\n        Roles = new[]\n        {\n            \"InventorySupply\",\n        },\n        Name = \n        {\n            { \"en-US\", \"Supply channel\" },\n        },\n        Description = \n        {\n            { \"en-US\", \"Supply channel desc\" },\n        },\n    });\n\n    var us_dist_channel = new Commercetools.Channel(\"us-dist-channel\", new()\n    {\n        Key = \"US-DIST\",\n        Roles = new[]\n        {\n            \"ProductDistribution\",\n        },\n        Name = \n        {\n            { \"en-US\", \"Dist channel\" },\n        },\n        Description = \n        {\n            { \"en-US\", \"Dist channel desc\" },\n        },\n    });\n\n    var my_store_type = new Commercetools.Type(\"my-store-type\", new()\n    {\n        Key = \"my-custom-store-type\",\n        Name = \n        {\n            { \"en\", \"My Store Type\" },\n        },\n        Description = \n        {\n            { \"en\", \"A custom store type\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"store\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"some-field\",\n                Label = \n                {\n                    { \"en\", \"Some Field\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n        },\n    });\n\n    var my_store = new Commercetools.Store(\"my-store\", new()\n    {\n        Key = \"my-store\",\n        Name = \n        {\n            { \"en-US\", \"My store\" },\n        },\n        Countries = new[]\n        {\n            \"NL\",\n            \"BE\",\n        },\n        Languages = new[]\n        {\n            \"en-US\",\n        },\n        DistributionChannels = new[]\n        {\n            \"US-DIST\",\n        },\n        SupplyChannels = new[]\n        {\n            \"US-SUP\",\n        },\n        Custom = new Commercetools.Inputs.StoreCustomArgs\n        {\n            TypeId = my_store_type.TypeId,\n            Fields = \n            {\n                { \"my-field\", \"ja\" },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            us_supply_channel,\n            us_dist_channel,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tus_supply_channel, err := commercetools.NewChannel(ctx, \"us-supply-channel\", &commercetools.ChannelArgs{\n\t\t\tKey: pulumi.String(\"US-SUP\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"InventorySupply\"),\n\t\t\t},\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"Supply channel\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"Supply channel desc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tus_dist_channel, err := commercetools.NewChannel(ctx, \"us-dist-channel\", &commercetools.ChannelArgs{\n\t\t\tKey: pulumi.String(\"US-DIST\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ProductDistribution\"),\n\t\t\t},\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"Dist channel\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"Dist channel desc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_store_type, err := commercetools.NewType(ctx, \"my-store-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-custom-store-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"My Store Type\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"A custom store type\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"store\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"some-field\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Some Field\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\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 = commercetools.NewStore(ctx, \"my-store\", &commercetools.StoreArgs{\n\t\t\tKey: pulumi.String(\"my-store\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en-US\": pulumi.String(\"My store\"),\n\t\t\t},\n\t\t\tCountries: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"NL\"),\n\t\t\t\tpulumi.String(\"BE\"),\n\t\t\t},\n\t\t\tLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en-US\"),\n\t\t\t},\n\t\t\tDistributionChannels: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"US-DIST\"),\n\t\t\t},\n\t\t\tSupplyChannels: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"US-SUP\"),\n\t\t\t},\n\t\t\tCustom: &commercetools.StoreCustomArgs{\n\t\t\t\tTypeId: my_store_type.TypeId,\n\t\t\t\tFields: pulumi.StringMap{\n\t\t\t\t\t\"my-field\": pulumi.String(\"ja\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tus_supply_channel,\n\t\t\tus_dist_channel,\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.commercetools.Channel;\nimport com.pulumi.commercetools.ChannelArgs;\nimport com.pulumi.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.Store;\nimport com.pulumi.commercetools.StoreArgs;\nimport com.pulumi.commercetools.inputs.StoreCustomArgs;\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        var us_supply_channel = new Channel(\"us-supply-channel\", ChannelArgs.builder()\n            .key(\"US-SUP\")\n            .roles(\"InventorySupply\")\n            .name(Map.of(\"en-US\", \"Supply channel\"))\n            .description(Map.of(\"en-US\", \"Supply channel desc\"))\n            .build());\n\n        var us_dist_channel = new Channel(\"us-dist-channel\", ChannelArgs.builder()\n            .key(\"US-DIST\")\n            .roles(\"ProductDistribution\")\n            .name(Map.of(\"en-US\", \"Dist channel\"))\n            .description(Map.of(\"en-US\", \"Dist channel desc\"))\n            .build());\n\n        var my_store_type = new Type(\"my-store-type\", TypeArgs.builder()\n            .key(\"my-custom-store-type\")\n            .name(Map.of(\"en\", \"My Store Type\"))\n            .description(Map.of(\"en\", \"A custom store type\"))\n            .resourceTypeIds(\"store\")\n            .fields(TypeFieldArgs.builder()\n                .name(\"some-field\")\n                .label(Map.of(\"en\", \"Some Field\"))\n                .type(TypeFieldTypeArgs.builder()\n                    .name(\"String\")\n                    .build())\n                .build())\n            .build());\n\n        var my_store = new Store(\"my-store\", StoreArgs.builder()\n            .key(\"my-store\")\n            .name(Map.of(\"en-US\", \"My store\"))\n            .countries(            \n                \"NL\",\n                \"BE\")\n            .languages(\"en-US\")\n            .distributionChannels(\"US-DIST\")\n            .supplyChannels(\"US-SUP\")\n            .custom(StoreCustomArgs.builder()\n                .typeId(my_store_type.typeId())\n                .fields(Map.of(\"my-field\", \"ja\"))\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    us_supply_channel,\n                    us_dist_channel)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  us-supply-channel:\n    type: commercetools:Channel\n    properties:\n      key: US-SUP\n      roles:\n        - InventorySupply\n      name:\n        en-US: Supply channel\n      description:\n        en-US: Supply channel desc\n  us-dist-channel:\n    type: commercetools:Channel\n    properties:\n      key: US-DIST\n      roles:\n        - ProductDistribution\n      name:\n        en-US: Dist channel\n      description:\n        en-US: Dist channel desc\n  my-store-type:\n    type: commercetools:Type\n    properties:\n      key: my-custom-store-type\n      name:\n        en: My Store Type\n      description:\n        en: A custom store type\n      resourceTypeIds:\n        - store\n      fields:\n        - name: some-field\n          label:\n            en: Some Field\n          type:\n            name: String\n  my-store:\n    type: commercetools:Store\n    properties:\n      key: my-store\n      name:\n        en-US: My store\n      countries:\n        - NL\n        - BE\n      languages:\n        - en-US\n      distributionChannels:\n        - US-DIST\n      supplyChannels:\n        - US-SUP\n      custom:\n        typeId: ${[\"my-store-type\"].typeId}\n        fields:\n          my-field: ja\n    options:\n      dependsOn:\n        - ${[\"us-supply-channel\"]}\n        - ${[\"us-dist-channel\"]}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"custom":{"$ref":"#/types/commercetools:index%2FStoreCustom:StoreCustom"},"distributionChannels":{"description":"Set of ResourceIdentifier to a Channel with ProductDistribution\n","items":{"type":"string"},"type":"array"},"key":{"description":"User-specific unique identifier for the store. The key is mandatory and immutable. It is used to reference the store\n","type":"string"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"productSelections":{"description":"Controls availability of Products for this Store via Product Selections\n","items":{"$ref":"#/types/commercetools:index%2FStoreProductSelection:StoreProductSelection"},"type":"array"},"storeId":{"description":"The ID of this resource.\n","type":"string"},"supplyChannels":{"description":"Set of ResourceIdentifier of Channels with InventorySupply\n","items":{"type":"string"},"type":"array"}},"properties":{"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"custom":{"$ref":"#/types/commercetools:index%2FStoreCustom:StoreCustom"},"distributionChannels":{"description":"Set of ResourceIdentifier to a Channel with ProductDistribution\n","items":{"type":"string"},"type":"array"},"key":{"description":"User-specific unique identifier for the store. The key is mandatory and immutable. It is used to reference the store\n","type":"string"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"productSelections":{"description":"Controls availability of Products for this Store via Product Selections\n","items":{"$ref":"#/types/commercetools:index%2FStoreProductSelection:StoreProductSelection"},"type":"array"},"storeId":{"description":"The ID of this resource.\n","type":"string"},"supplyChannels":{"description":"Set of ResourceIdentifier of Channels with InventorySupply\n","items":{"type":"string"},"type":"array"},"version":{"type":"number"}},"required":["key","storeId","version"],"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering Store resources.\n","properties":{"countries":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","items":{"type":"string"},"type":"array"},"custom":{"$ref":"#/types/commercetools:index%2FStoreCustom:StoreCustom"},"distributionChannels":{"description":"Set of ResourceIdentifier to a Channel with ProductDistribution\n","items":{"type":"string"},"type":"array"},"key":{"description":"User-specific unique identifier for the store. The key is mandatory and immutable. It is used to reference the store\n","type":"string"},"languages":{"description":"[IETF Language Tag](https://en.wikipedia.org/wiki/IETF_language_tag)\n","items":{"type":"string"},"type":"array"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"productSelections":{"description":"Controls availability of Products for this Store via Product Selections\n","items":{"$ref":"#/types/commercetools:index%2FStoreProductSelection:StoreProductSelection"},"type":"array"},"storeId":{"description":"The ID of this resource.\n","type":"string"},"supplyChannels":{"description":"Set of ResourceIdentifier of Channels with InventorySupply\n","items":{"type":"string"},"type":"array"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/subscription:Subscription":{"description":"Subscriptions allow you to be notified of new messages or changes via a Message Queue of your choice. Subscriptions are used to trigger an asynchronous background process in response to an event on the commercetools platform. Common use cases include sending an Order Confirmation Email, charging a Credit Card after the delivery has been made, or synchronizing customer accounts to a Customer Relationship Management (CRM) system.\n\nSee also the [Subscriptions API Documentation](https://docs.commercetools.com/api/projects/subscriptions)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_sqs_subscription = new commercetools.Subscription(\"my-sqs-subscription\", {\n    key: \"my-sqs-subscription-key\",\n    destinations: [{\n        type: \"SQS\",\n        queueUrl: your_queue.id,\n        accessKey: ct.id,\n        accessSecret: ct.secret,\n        region: \"eu-west-1\",\n    }],\n    changes: [{\n        resourceTypeIds: [\"product\"],\n    }],\n    messages: [{\n        resourceTypeId: \"product\",\n        types: [\n            \"ProductPublished\",\n            \"ProductCreated\",\n        ],\n    }],\n    events: [{\n        resourceTypeId: \"import-api\",\n        types: [\"ImportContainerCreated\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_sqs_subscription = commercetools.Subscription(\"my-sqs-subscription\",\n    key=\"my-sqs-subscription-key\",\n    destinations=[{\n        \"type\": \"SQS\",\n        \"queue_url\": your_queue[\"id\"],\n        \"access_key\": ct[\"id\"],\n        \"access_secret\": ct[\"secret\"],\n        \"region\": \"eu-west-1\",\n    }],\n    changes=[{\n        \"resource_type_ids\": [\"product\"],\n    }],\n    messages=[{\n        \"resource_type_id\": \"product\",\n        \"types\": [\n            \"ProductPublished\",\n            \"ProductCreated\",\n        ],\n    }],\n    events=[{\n        \"resource_type_id\": \"import-api\",\n        \"types\": [\"ImportContainerCreated\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_sqs_subscription = new Commercetools.Subscription(\"my-sqs-subscription\", new()\n    {\n        Key = \"my-sqs-subscription-key\",\n        Destinations = new[]\n        {\n            new Commercetools.Inputs.SubscriptionDestinationArgs\n            {\n                Type = \"SQS\",\n                QueueUrl = your_queue.Id,\n                AccessKey = ct.Id,\n                AccessSecret = ct.Secret,\n                Region = \"eu-west-1\",\n            },\n        },\n        Changes = new[]\n        {\n            new Commercetools.Inputs.SubscriptionChangeArgs\n            {\n                ResourceTypeIds = new[]\n                {\n                    \"product\",\n                },\n            },\n        },\n        Messages = new[]\n        {\n            new Commercetools.Inputs.SubscriptionMessageArgs\n            {\n                ResourceTypeId = \"product\",\n                Types = new[]\n                {\n                    \"ProductPublished\",\n                    \"ProductCreated\",\n                },\n            },\n        },\n        Events = new[]\n        {\n            new Commercetools.Inputs.SubscriptionEventArgs\n            {\n                ResourceTypeId = \"import-api\",\n                Types = new[]\n                {\n                    \"ImportContainerCreated\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewSubscription(ctx, \"my-sqs-subscription\", &commercetools.SubscriptionArgs{\n\t\t\tKey: pulumi.String(\"my-sqs-subscription-key\"),\n\t\t\tDestinations: commercetools.SubscriptionDestinationArray{\n\t\t\t\t&commercetools.SubscriptionDestinationArgs{\n\t\t\t\t\tType:         pulumi.String(\"SQS\"),\n\t\t\t\t\tQueueUrl:     pulumi.Any(your_queue.Id),\n\t\t\t\t\tAccessKey:    pulumi.Any(ct.Id),\n\t\t\t\t\tAccessSecret: pulumi.Any(ct.Secret),\n\t\t\t\t\tRegion:       pulumi.String(\"eu-west-1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tChanges: commercetools.SubscriptionChangeArray{\n\t\t\t\t&commercetools.SubscriptionChangeArgs{\n\t\t\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"product\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMessages: commercetools.SubscriptionMessageArray{\n\t\t\t\t&commercetools.SubscriptionMessageArgs{\n\t\t\t\t\tResourceTypeId: pulumi.String(\"product\"),\n\t\t\t\t\tTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ProductPublished\"),\n\t\t\t\t\t\tpulumi.String(\"ProductCreated\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEvents: commercetools.SubscriptionEventArray{\n\t\t\t\t&commercetools.SubscriptionEventArgs{\n\t\t\t\t\tResourceTypeId: pulumi.String(\"import-api\"),\n\t\t\t\t\tTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ImportContainerCreated\"),\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.commercetools.Subscription;\nimport com.pulumi.commercetools.SubscriptionArgs;\nimport com.pulumi.commercetools.inputs.SubscriptionDestinationArgs;\nimport com.pulumi.commercetools.inputs.SubscriptionChangeArgs;\nimport com.pulumi.commercetools.inputs.SubscriptionMessageArgs;\nimport com.pulumi.commercetools.inputs.SubscriptionEventArgs;\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 my_sqs_subscription = new Subscription(\"my-sqs-subscription\", SubscriptionArgs.builder()\n            .key(\"my-sqs-subscription-key\")\n            .destinations(SubscriptionDestinationArgs.builder()\n                .type(\"SQS\")\n                .queueUrl(your_queue.id())\n                .accessKey(ct.id())\n                .accessSecret(ct.secret())\n                .region(\"eu-west-1\")\n                .build())\n            .changes(SubscriptionChangeArgs.builder()\n                .resourceTypeIds(\"product\")\n                .build())\n            .messages(SubscriptionMessageArgs.builder()\n                .resourceTypeId(\"product\")\n                .types(                \n                    \"ProductPublished\",\n                    \"ProductCreated\")\n                .build())\n            .events(SubscriptionEventArgs.builder()\n                .resourceTypeId(\"import-api\")\n                .types(\"ImportContainerCreated\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-sqs-subscription:\n    type: commercetools:Subscription\n    properties:\n      key: my-sqs-subscription-key\n      destinations:\n        - type: SQS\n          queueUrl: ${[\"your-queue\"].id}\n          accessKey: ${ct.id}\n          accessSecret: ${ct.secret}\n          region: eu-west-1\n      changes:\n        - resourceTypeIds:\n            - product\n      messages:\n        - resourceTypeId: product\n          types:\n            - ProductPublished\n            - ProductCreated\n      events:\n        - resourceTypeId: import-api\n          types:\n            - ImportContainerCreated\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"changes":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionChange:SubscriptionChange"},"type":"array"},"destinations":{"items":{"$ref":"#/types/commercetools:index%2FSubscriptionDestination:SubscriptionDestination"},"type":"array"},"events":{"description":"Events to be subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionEvent:SubscriptionEvent"},"type":"array"},"formats":{"description":"The [format](https://docs.commercetools.com/api/projects/subscriptions#format) in which the payload is delivered\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionFormat:SubscriptionFormat"},"type":"array"},"key":{"type":"string"},"messages":{"description":"The messages subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionMessage:SubscriptionMessage"},"type":"array"}},"properties":{"changes":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionChange:SubscriptionChange"},"type":"array"},"destinations":{"items":{"$ref":"#/types/commercetools:index%2FSubscriptionDestination:SubscriptionDestination"},"type":"array"},"events":{"description":"Events to be subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionEvent:SubscriptionEvent"},"type":"array"},"formats":{"description":"The [format](https://docs.commercetools.com/api/projects/subscriptions#format) in which the payload is delivered\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionFormat:SubscriptionFormat"},"type":"array"},"key":{"type":"string"},"messages":{"description":"The messages subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionMessage:SubscriptionMessage"},"type":"array"},"version":{"type":"number"}},"required":["version"],"stateInputs":{"description":"Input properties used for looking up and filtering Subscription resources.\n","properties":{"changes":{"description":"The change notifications subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionChange:SubscriptionChange"},"type":"array"},"destinations":{"items":{"$ref":"#/types/commercetools:index%2FSubscriptionDestination:SubscriptionDestination"},"type":"array"},"events":{"description":"Events to be subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionEvent:SubscriptionEvent"},"type":"array"},"formats":{"description":"The [format](https://docs.commercetools.com/api/projects/subscriptions#format) in which the payload is delivered\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionFormat:SubscriptionFormat"},"type":"array"},"key":{"type":"string"},"messages":{"description":"The messages subscribed to\n","items":{"$ref":"#/types/commercetools:index%2FSubscriptionMessage:SubscriptionMessage"},"type":"array"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/taxCategory:TaxCategory":{"description":"Tax Categories define how products are to be taxed in different countries.\n\nSee also the [Tax Category API Documentation](https://docs.commercetools.com/api/projects/taxCategories)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_tax_category = new commercetools.TaxCategory(\"my-tax-category\", {\n    key: \"my-tax-category-key\",\n    name: \"Standard tax category\",\n    description: \"Example category\",\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_tax_category = commercetools.TaxCategory(\"my-tax-category\",\n    key=\"my-tax-category-key\",\n    name=\"Standard tax category\",\n    description=\"Example category\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_tax_category = new Commercetools.TaxCategory(\"my-tax-category\", new()\n    {\n        Key = \"my-tax-category-key\",\n        Name = \"Standard tax category\",\n        Description = \"Example category\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewTaxCategory(ctx, \"my-tax-category\", &commercetools.TaxCategoryArgs{\n\t\t\tKey:         pulumi.String(\"my-tax-category-key\"),\n\t\t\tName:        pulumi.String(\"Standard tax category\"),\n\t\t\tDescription: pulumi.String(\"Example category\"),\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.commercetools.TaxCategory;\nimport com.pulumi.commercetools.TaxCategoryArgs;\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 my_tax_category = new TaxCategory(\"my-tax-category\", TaxCategoryArgs.builder()\n            .key(\"my-tax-category-key\")\n            .name(\"Standard tax category\")\n            .description(\"Example category\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-tax-category:\n    type: commercetools:TaxCategory\n    properties:\n      key: my-tax-category-key\n      name: Standard tax category\n      description: Example category\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the tax category\n","type":"string"},"name":{"type":"string"},"taxCategoryId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the tax category\n","type":"string"},"name":{"type":"string"},"taxCategoryId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"required":["name","taxCategoryId","version"],"stateInputs":{"description":"Input properties used for looking up and filtering TaxCategory resources.\n","properties":{"description":{"type":"string"},"key":{"description":"User-specific unique identifier for the tax category\n","type":"string"},"name":{"type":"string"},"taxCategoryId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"},"commercetools:index/taxCategoryRate:TaxCategoryRate":{"description":"Tax rate for Tax Category. \n\nSee also [Tax Rate API Documentation](https://docs.commercetools.com/api/projects/taxCategories#taxrate)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_tax_category = new commercetools.TaxCategory(\"my-tax-category\", {\n    key: \"my-tax-category\",\n    name: \"Standard tax category\",\n    description: \"Example category\",\n});\nconst standard_tax_category_DE = new commercetools.TaxCategoryRate(\"standard-tax-category-DE\", {\n    key: \"standard-tax-category-DE\",\n    taxCategoryId: my_tax_category.taxCategoryId,\n    name: \"19% MwSt\",\n    amount: 0.19,\n    includedInPrice: false,\n    country: \"DE\",\n    subRates: [{\n        name: \"example\",\n        amount: 0.19,\n    }],\n});\nconst standard_tax_category_NL = new commercetools.TaxCategoryRate(\"standard-tax-category-NL\", {\n    key: \"standard-tax-category-NL\",\n    taxCategoryId: my_tax_category.taxCategoryId,\n    name: \"21% BTW\",\n    amount: 0.21,\n    includedInPrice: true,\n    country: \"NL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_tax_category = commercetools.TaxCategory(\"my-tax-category\",\n    key=\"my-tax-category\",\n    name=\"Standard tax category\",\n    description=\"Example category\")\nstandard_tax_category__de = commercetools.TaxCategoryRate(\"standard-tax-category-DE\",\n    key=\"standard-tax-category-DE\",\n    tax_category_id=my_tax_category.tax_category_id,\n    name=\"19% MwSt\",\n    amount=0.19,\n    included_in_price=False,\n    country=\"DE\",\n    sub_rates=[{\n        \"name\": \"example\",\n        \"amount\": 0.19,\n    }])\nstandard_tax_category__nl = commercetools.TaxCategoryRate(\"standard-tax-category-NL\",\n    key=\"standard-tax-category-NL\",\n    tax_category_id=my_tax_category.tax_category_id,\n    name=\"21% BTW\",\n    amount=0.21,\n    included_in_price=True,\n    country=\"NL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_tax_category = new Commercetools.TaxCategory(\"my-tax-category\", new()\n    {\n        Key = \"my-tax-category\",\n        Name = \"Standard tax category\",\n        Description = \"Example category\",\n    });\n\n    var standard_tax_category_DE = new Commercetools.TaxCategoryRate(\"standard-tax-category-DE\", new()\n    {\n        Key = \"standard-tax-category-DE\",\n        TaxCategoryId = my_tax_category.TaxCategoryId,\n        Name = \"19% MwSt\",\n        Amount = 0.19,\n        IncludedInPrice = false,\n        Country = \"DE\",\n        SubRates = new[]\n        {\n            new Commercetools.Inputs.TaxCategoryRateSubRateArgs\n            {\n                Name = \"example\",\n                Amount = 0.19,\n            },\n        },\n    });\n\n    var standard_tax_category_NL = new Commercetools.TaxCategoryRate(\"standard-tax-category-NL\", new()\n    {\n        Key = \"standard-tax-category-NL\",\n        TaxCategoryId = my_tax_category.TaxCategoryId,\n        Name = \"21% BTW\",\n        Amount = 0.21,\n        IncludedInPrice = true,\n        Country = \"NL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_tax_category, err := commercetools.NewTaxCategory(ctx, \"my-tax-category\", &commercetools.TaxCategoryArgs{\n\t\t\tKey:         pulumi.String(\"my-tax-category\"),\n\t\t\tName:        pulumi.String(\"Standard tax category\"),\n\t\t\tDescription: pulumi.String(\"Example category\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = commercetools.NewTaxCategoryRate(ctx, \"standard-tax-category-DE\", &commercetools.TaxCategoryRateArgs{\n\t\t\tKey:             pulumi.String(\"standard-tax-category-DE\"),\n\t\t\tTaxCategoryId:   my_tax_category.TaxCategoryId,\n\t\t\tName:            pulumi.String(\"19% MwSt\"),\n\t\t\tAmount:          pulumi.Float64(0.19),\n\t\t\tIncludedInPrice: pulumi.Bool(false),\n\t\t\tCountry:         pulumi.String(\"DE\"),\n\t\t\tSubRates: commercetools.TaxCategoryRateSubRateArray{\n\t\t\t\t&commercetools.TaxCategoryRateSubRateArgs{\n\t\t\t\t\tName:   pulumi.String(\"example\"),\n\t\t\t\t\tAmount: pulumi.Float64(0.19),\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 = commercetools.NewTaxCategoryRate(ctx, \"standard-tax-category-NL\", &commercetools.TaxCategoryRateArgs{\n\t\t\tKey:             pulumi.String(\"standard-tax-category-NL\"),\n\t\t\tTaxCategoryId:   my_tax_category.TaxCategoryId,\n\t\t\tName:            pulumi.String(\"21% BTW\"),\n\t\t\tAmount:          pulumi.Float64(0.21),\n\t\t\tIncludedInPrice: pulumi.Bool(true),\n\t\t\tCountry:         pulumi.String(\"NL\"),\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.commercetools.TaxCategory;\nimport com.pulumi.commercetools.TaxCategoryArgs;\nimport com.pulumi.commercetools.TaxCategoryRate;\nimport com.pulumi.commercetools.TaxCategoryRateArgs;\nimport com.pulumi.commercetools.inputs.TaxCategoryRateSubRateArgs;\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 my_tax_category = new TaxCategory(\"my-tax-category\", TaxCategoryArgs.builder()\n            .key(\"my-tax-category\")\n            .name(\"Standard tax category\")\n            .description(\"Example category\")\n            .build());\n\n        var standard_tax_category_DE = new TaxCategoryRate(\"standard-tax-category-DE\", TaxCategoryRateArgs.builder()\n            .key(\"standard-tax-category-DE\")\n            .taxCategoryId(my_tax_category.taxCategoryId())\n            .name(\"19% MwSt\")\n            .amount(0.19)\n            .includedInPrice(false)\n            .country(\"DE\")\n            .subRates(TaxCategoryRateSubRateArgs.builder()\n                .name(\"example\")\n                .amount(0.19)\n                .build())\n            .build());\n\n        var standard_tax_category_NL = new TaxCategoryRate(\"standard-tax-category-NL\", TaxCategoryRateArgs.builder()\n            .key(\"standard-tax-category-NL\")\n            .taxCategoryId(my_tax_category.taxCategoryId())\n            .name(\"21% BTW\")\n            .amount(0.21)\n            .includedInPrice(true)\n            .country(\"NL\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-tax-category:\n    type: commercetools:TaxCategory\n    properties:\n      key: my-tax-category\n      name: Standard tax category\n      description: Example category\n  standard-tax-category-DE:\n    type: commercetools:TaxCategoryRate\n    properties:\n      key: standard-tax-category-DE\n      taxCategoryId: ${[\"my-tax-category\"].taxCategoryId}\n      name: 19% MwSt\n      amount: 0.19\n      includedInPrice: false\n      country: DE\n      subRates:\n        - name: example\n          amount: 0.19\n  standard-tax-category-NL:\n    type: commercetools:TaxCategoryRate\n    properties:\n      key: standard-tax-category-NL\n      taxCategoryId: ${[\"my-tax-category\"].taxCategoryId}\n      name: 21% BTW\n      amount: 0.21\n      includedInPrice: true\n      country: NL\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"amount":{"description":"Number Percentage in the range of [0..1]. The sum of the amounts of all subRates, if there are any\n","type":"number"},"country":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","type":"string"},"includedInPrice":{"type":"boolean"},"key":{"description":"User-specific unique identifier for the tax category rate\n","type":"string"},"name":{"type":"string"},"state":{"description":"The state in the country\n","type":"string"},"subRates":{"description":"For countries (for example the US) where the total tax is a combination of multiple taxes (for example state and local taxes)\n","items":{"$ref":"#/types/commercetools:index%2FTaxCategoryRateSubRate:TaxCategoryRateSubRate"},"type":"array"},"taxCategoryId":{"type":"string"},"taxCategoryRateId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"amount":{"description":"Number Percentage in the range of [0..1]. The sum of the amounts of all subRates, if there are any\n","type":"number"},"country":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","type":"string"},"includedInPrice":{"type":"boolean"},"key":{"description":"User-specific unique identifier for the tax category rate\n","type":"string"},"name":{"type":"string"},"state":{"description":"The state in the country\n","type":"string"},"subRates":{"description":"For countries (for example the US) where the total tax is a combination of multiple taxes (for example state and local taxes)\n","items":{"$ref":"#/types/commercetools:index%2FTaxCategoryRateSubRate:TaxCategoryRateSubRate"},"type":"array"},"taxCategoryId":{"type":"string"},"taxCategoryRateId":{"description":"The ID of this resource.\n","type":"string"}},"required":["country","includedInPrice","name","taxCategoryId","taxCategoryRateId"],"requiredInputs":["country","includedInPrice","taxCategoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering TaxCategoryRate resources.\n","properties":{"amount":{"description":"Number Percentage in the range of [0..1]. The sum of the amounts of all subRates, if there are any\n","type":"number"},"country":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","type":"string"},"includedInPrice":{"type":"boolean"},"key":{"description":"User-specific unique identifier for the tax category rate\n","type":"string"},"name":{"type":"string"},"state":{"description":"The state in the country\n","type":"string"},"subRates":{"description":"For countries (for example the US) where the total tax is a combination of multiple taxes (for example state and local taxes)\n","items":{"$ref":"#/types/commercetools:index%2FTaxCategoryRateSubRate:TaxCategoryRateSubRate"},"type":"array"},"taxCategoryId":{"type":"string"},"taxCategoryRateId":{"description":"The ID of this resource.\n","type":"string"}},"type":"object"},"type":"object"},"commercetools:index/type:Type":{"description":"Types define custom fields that are used to enhance resources as you need. Use Types to model your own CustomFields on resources, like Category and Customer.\n\nIn case you want to customize products, please use product types instead that serve a similar purpose, but tailored to products.\n\nSee also the [Types Api Documentation](https://docs.commercetools.com/api/projects/types)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as commercetools from \"@pulumi/commercetools\";\n\nconst my_custom_type = new commercetools.Type(\"my-custom-type\", {\n    key: \"my-custom-type\",\n    name: {\n        en: \"Contact info\",\n        nl: \"Contact informatie\",\n    },\n    description: {\n        en: \"All things related communication\",\n        nl: \"Alle communicatie-gerelateerde zaken\",\n    },\n    resourceTypeIds: [\"customer\"],\n    fields: [\n        {\n            name: \"skype_name\",\n            label: {\n                en: \"Skype name\",\n                nl: \"Skype naam\",\n            },\n            type: {\n                name: \"String\",\n            },\n        },\n        {\n            name: \"contact_time\",\n            label: {\n                en: \"Contact time\",\n                nl: \"Contact tijd\",\n            },\n            type: {\n                name: \"Enum\",\n                values: [\n                    {\n                        key: \"day\",\n                        label: \"Daytime\",\n                    },\n                    {\n                        key: \"evening\",\n                        label: \"Evening\",\n                    },\n                ],\n            },\n        },\n        {\n            name: \"emails\",\n            label: {\n                en: \"Emails\",\n                nl: \"Emails\",\n            },\n            type: {\n                name: \"Set\",\n                elementType: {\n                    name: \"String\",\n                },\n            },\n        },\n        {\n            name: \"contact_preference\",\n            label: {\n                en: \"Contact preference\",\n                nl: \"Contact voorkeur\",\n            },\n            type: {\n                name: \"LocalizedEnum\",\n                localizedValues: [\n                    {\n                        key: \"phone\",\n                        label: {\n                            en: \"Phone\",\n                            nl: \"Telefoon\",\n                        },\n                    },\n                    {\n                        key: \"skype\",\n                        label: {\n                            en: \"Skype\",\n                            nl: \"Skype\",\n                        },\n                    },\n                ],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_commercetools as commercetools\n\nmy_custom_type = commercetools.Type(\"my-custom-type\",\n    key=\"my-custom-type\",\n    name={\n        \"en\": \"Contact info\",\n        \"nl\": \"Contact informatie\",\n    },\n    description={\n        \"en\": \"All things related communication\",\n        \"nl\": \"Alle communicatie-gerelateerde zaken\",\n    },\n    resource_type_ids=[\"customer\"],\n    fields=[\n        {\n            \"name\": \"skype_name\",\n            \"label\": {\n                \"en\": \"Skype name\",\n                \"nl\": \"Skype naam\",\n            },\n            \"type\": {\n                \"name\": \"String\",\n            },\n        },\n        {\n            \"name\": \"contact_time\",\n            \"label\": {\n                \"en\": \"Contact time\",\n                \"nl\": \"Contact tijd\",\n            },\n            \"type\": {\n                \"name\": \"Enum\",\n                \"values\": [\n                    {\n                        \"key\": \"day\",\n                        \"label\": \"Daytime\",\n                    },\n                    {\n                        \"key\": \"evening\",\n                        \"label\": \"Evening\",\n                    },\n                ],\n            },\n        },\n        {\n            \"name\": \"emails\",\n            \"label\": {\n                \"en\": \"Emails\",\n                \"nl\": \"Emails\",\n            },\n            \"type\": {\n                \"name\": \"Set\",\n                \"element_type\": {\n                    \"name\": \"String\",\n                },\n            },\n        },\n        {\n            \"name\": \"contact_preference\",\n            \"label\": {\n                \"en\": \"Contact preference\",\n                \"nl\": \"Contact voorkeur\",\n            },\n            \"type\": {\n                \"name\": \"LocalizedEnum\",\n                \"localized_values\": [\n                    {\n                        \"key\": \"phone\",\n                        \"label\": {\n                            \"en\": \"Phone\",\n                            \"nl\": \"Telefoon\",\n                        },\n                    },\n                    {\n                        \"key\": \"skype\",\n                        \"label\": {\n                            \"en\": \"Skype\",\n                            \"nl\": \"Skype\",\n                        },\n                    },\n                ],\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Commercetools = Pulumi.Commercetools;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_custom_type = new Commercetools.Type(\"my-custom-type\", new()\n    {\n        Key = \"my-custom-type\",\n        Name = \n        {\n            { \"en\", \"Contact info\" },\n            { \"nl\", \"Contact informatie\" },\n        },\n        Description = \n        {\n            { \"en\", \"All things related communication\" },\n            { \"nl\", \"Alle communicatie-gerelateerde zaken\" },\n        },\n        ResourceTypeIds = new[]\n        {\n            \"customer\",\n        },\n        Fields = new[]\n        {\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"skype_name\",\n                Label = \n                {\n                    { \"en\", \"Skype name\" },\n                    { \"nl\", \"Skype naam\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"String\",\n                },\n            },\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"contact_time\",\n                Label = \n                {\n                    { \"en\", \"Contact time\" },\n                    { \"nl\", \"Contact tijd\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"Enum\",\n                    Values = new[]\n                    {\n                        new Commercetools.Inputs.TypeFieldTypeValueArgs\n                        {\n                            Key = \"day\",\n                            Label = \"Daytime\",\n                        },\n                        new Commercetools.Inputs.TypeFieldTypeValueArgs\n                        {\n                            Key = \"evening\",\n                            Label = \"Evening\",\n                        },\n                    },\n                },\n            },\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"emails\",\n                Label = \n                {\n                    { \"en\", \"Emails\" },\n                    { \"nl\", \"Emails\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"Set\",\n                    ElementType = new Commercetools.Inputs.TypeFieldTypeElementTypeArgs\n                    {\n                        Name = \"String\",\n                    },\n                },\n            },\n            new Commercetools.Inputs.TypeFieldArgs\n            {\n                Name = \"contact_preference\",\n                Label = \n                {\n                    { \"en\", \"Contact preference\" },\n                    { \"nl\", \"Contact voorkeur\" },\n                },\n                Type = new Commercetools.Inputs.TypeFieldTypeArgs\n                {\n                    Name = \"LocalizedEnum\",\n                    LocalizedValues = new[]\n                    {\n                        new Commercetools.Inputs.TypeFieldTypeLocalizedValueArgs\n                        {\n                            Key = \"phone\",\n                            Label = \n                            {\n                                { \"en\", \"Phone\" },\n                                { \"nl\", \"Telefoon\" },\n                            },\n                        },\n                        new Commercetools.Inputs.TypeFieldTypeLocalizedValueArgs\n                        {\n                            Key = \"skype\",\n                            Label = \n                            {\n                                { \"en\", \"Skype\" },\n                                { \"nl\", \"Skype\" },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/commercetools/commercetools\"\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 := commercetools.NewType(ctx, \"my-custom-type\", &commercetools.TypeArgs{\n\t\t\tKey: pulumi.String(\"my-custom-type\"),\n\t\t\tName: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"Contact info\"),\n\t\t\t\t\"nl\": pulumi.String(\"Contact informatie\"),\n\t\t\t},\n\t\t\tDescription: pulumi.StringMap{\n\t\t\t\t\"en\": pulumi.String(\"All things related communication\"),\n\t\t\t\t\"nl\": pulumi.String(\"Alle communicatie-gerelateerde zaken\"),\n\t\t\t},\n\t\t\tResourceTypeIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"customer\"),\n\t\t\t},\n\t\t\tFields: commercetools.TypeFieldArray{\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"skype_name\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Skype name\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Skype naam\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"String\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"contact_time\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Contact time\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Contact tijd\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Enum\"),\n\t\t\t\t\t\tValues: commercetools.TypeFieldTypeValueArray{\n\t\t\t\t\t\t\t&commercetools.TypeFieldTypeValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"day\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.String(\"Daytime\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t&commercetools.TypeFieldTypeValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"evening\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.String(\"Evening\"),\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\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"emails\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Emails\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Emails\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Set\"),\n\t\t\t\t\t\tElementType: &commercetools.TypeFieldTypeElementTypeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"String\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&commercetools.TypeFieldArgs{\n\t\t\t\t\tName: pulumi.String(\"contact_preference\"),\n\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\"en\": pulumi.String(\"Contact preference\"),\n\t\t\t\t\t\t\"nl\": pulumi.String(\"Contact voorkeur\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: &commercetools.TypeFieldTypeArgs{\n\t\t\t\t\t\tName: pulumi.String(\"LocalizedEnum\"),\n\t\t\t\t\t\tLocalizedValues: commercetools.TypeFieldTypeLocalizedValueArray{\n\t\t\t\t\t\t\t&commercetools.TypeFieldTypeLocalizedValueArgs{\n\t\t\t\t\t\t\t\tKey: pulumi.String(\"phone\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\"en\": pulumi.String(\"Phone\"),\n\t\t\t\t\t\t\t\t\t\"nl\": pulumi.String(\"Telefoon\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t&commercetools.TypeFieldTypeLocalizedValueArgs{\n\t\t\t\t\t\t\t\tKey: pulumi.String(\"skype\"),\n\t\t\t\t\t\t\t\tLabel: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\"en\": pulumi.String(\"Skype\"),\n\t\t\t\t\t\t\t\t\t\"nl\": pulumi.String(\"Skype\"),\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},\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.commercetools.Type;\nimport com.pulumi.commercetools.TypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeArgs;\nimport com.pulumi.commercetools.inputs.TypeFieldTypeElementTypeArgs;\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 my_custom_type = new Type(\"my-custom-type\", TypeArgs.builder()\n            .key(\"my-custom-type\")\n            .name(Map.ofEntries(\n                Map.entry(\"en\", \"Contact info\"),\n                Map.entry(\"nl\", \"Contact informatie\")\n            ))\n            .description(Map.ofEntries(\n                Map.entry(\"en\", \"All things related communication\"),\n                Map.entry(\"nl\", \"Alle communicatie-gerelateerde zaken\")\n            ))\n            .resourceTypeIds(\"customer\")\n            .fields(            \n                TypeFieldArgs.builder()\n                    .name(\"skype_name\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Skype name\"),\n                        Map.entry(\"nl\", \"Skype naam\")\n                    ))\n                    .type(TypeFieldTypeArgs.builder()\n                        .name(\"String\")\n                        .build())\n                    .build(),\n                TypeFieldArgs.builder()\n                    .name(\"contact_time\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Contact time\"),\n                        Map.entry(\"nl\", \"Contact tijd\")\n                    ))\n                    .type(TypeFieldTypeArgs.builder()\n                        .name(\"Enum\")\n                        .values(                        \n                            TypeFieldTypeValueArgs.builder()\n                                .key(\"day\")\n                                .label(\"Daytime\")\n                                .build(),\n                            TypeFieldTypeValueArgs.builder()\n                                .key(\"evening\")\n                                .label(\"Evening\")\n                                .build())\n                        .build())\n                    .build(),\n                TypeFieldArgs.builder()\n                    .name(\"emails\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Emails\"),\n                        Map.entry(\"nl\", \"Emails\")\n                    ))\n                    .type(TypeFieldTypeArgs.builder()\n                        .name(\"Set\")\n                        .elementType(TypeFieldTypeElementTypeArgs.builder()\n                            .name(\"String\")\n                            .build())\n                        .build())\n                    .build(),\n                TypeFieldArgs.builder()\n                    .name(\"contact_preference\")\n                    .label(Map.ofEntries(\n                        Map.entry(\"en\", \"Contact preference\"),\n                        Map.entry(\"nl\", \"Contact voorkeur\")\n                    ))\n                    .type(TypeFieldTypeArgs.builder()\n                        .name(\"LocalizedEnum\")\n                        .localizedValues(                        \n                            TypeFieldTypeLocalizedValueArgs.builder()\n                                .key(\"phone\")\n                                .label(Map.ofEntries(\n                                    Map.entry(\"en\", \"Phone\"),\n                                    Map.entry(\"nl\", \"Telefoon\")\n                                ))\n                                .build(),\n                            TypeFieldTypeLocalizedValueArgs.builder()\n                                .key(\"skype\")\n                                .label(Map.ofEntries(\n                                    Map.entry(\"en\", \"Skype\"),\n                                    Map.entry(\"nl\", \"Skype\")\n                                ))\n                                .build())\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-custom-type:\n    type: commercetools:Type\n    properties:\n      key: my-custom-type\n      name:\n        en: Contact info\n        nl: Contact informatie\n      description:\n        en: All things related communication\n        nl: Alle communicatie-gerelateerde zaken\n      resourceTypeIds:\n        - customer\n      fields:\n        - name: skype_name\n          label:\n            en: Skype name\n            nl: Skype naam\n          type:\n            name: String\n        - name: contact_time\n          label:\n            en: Contact time\n            nl: Contact tijd\n          type:\n            name: Enum\n            values:\n              - key: day\n                label: Daytime\n              - key: evening\n                label: Evening\n        - name: emails\n          label:\n            en: Emails\n            nl: Emails\n          type:\n            name: Set\n            elementType:\n              name: String\n        - name: contact_preference\n          label:\n            en: Contact preference\n            nl: Contact voorkeur\n          type:\n            name: LocalizedEnum\n            localizedValues:\n              - key: phone\n                label:\n                  en: Phone\n                  nl: Telefoon\n              - key: skype\n                label:\n                  en: Skype\n                  nl: Skype\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"fields":{"description":"[Field definition](https://docs.commercetools.com/api/projects/types#fielddefinition)\n","items":{"$ref":"#/types/commercetools:index%2FTypeField:TypeField"},"type":"array"},"key":{"description":"Identifier for the type (max. 256 characters)\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"resourceTypeIds":{"description":"Defines for which [resources](https://docs.commercetools.com/api/projects/custom-fields#customizable-resources) the type is valid\n","items":{"type":"string"},"type":"array"},"typeId":{"description":"The ID of this resource.\n","type":"string"}},"properties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"fields":{"description":"[Field definition](https://docs.commercetools.com/api/projects/types#fielddefinition)\n","items":{"$ref":"#/types/commercetools:index%2FTypeField:TypeField"},"type":"array"},"key":{"description":"Identifier for the type (max. 256 characters)\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"resourceTypeIds":{"description":"Defines for which [resources](https://docs.commercetools.com/api/projects/custom-fields#customizable-resources) the type is valid\n","items":{"type":"string"},"type":"array"},"typeId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"required":["key","name","resourceTypeIds","typeId","version"],"requiredInputs":["key","name","resourceTypeIds"],"stateInputs":{"description":"Input properties used for looking up and filtering Type resources.\n","properties":{"description":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"fields":{"description":"[Field definition](https://docs.commercetools.com/api/projects/types#fielddefinition)\n","items":{"$ref":"#/types/commercetools:index%2FTypeField:TypeField"},"type":"array"},"key":{"description":"Identifier for the type (max. 256 characters)\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"[LocalizedString](https://docs.commercetools.com/api/types#localizedstring)\n","type":"object"},"resourceTypeIds":{"description":"Defines for which [resources](https://docs.commercetools.com/api/projects/custom-fields#customizable-resources) the type is valid\n","items":{"type":"string"},"type":"array"},"typeId":{"description":"The ID of this resource.\n","type":"string"},"version":{"type":"number"}},"type":"object"},"type":"object"}},"types":{"commercetools:index/ApiExtensionDestination:ApiExtensionDestination":{"properties":{"accessKey":{"type":"string"},"accessSecret":{"secret":true,"type":"string"},"arn":{"type":"string"},"authorizationHeader":{"type":"string"},"azureAuthentication":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":["type"],"type":"object"},"commercetools:index/ApiExtensionTrigger:ApiExtensionTrigger":{"properties":{"actions":{"description":"Currently, Create and Update are supported\n","items":{"type":"string"},"type":"array"},"condition":{"description":"Valid predicate that controls the conditions under which the API Extension is called.\n","type":"string"},"resourceTypeId":{"description":"Currently, cart, order, payment, and customer are supported\n","type":"string"}},"required":["actions","resourceTypeId"],"type":"object"},"commercetools:index/AssociateRoleCustom:AssociateRoleCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"CustomValue fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"description":"The ID of the custom type to use for this resource.\n","type":"string"}},"type":"object"},"commercetools:index/AttributeGroupAttribute:AttributeGroupAttribute":{"properties":{"key":{"description":"The Attribute's name as given in its AttributeDefinition.\n","type":"string"}},"required":["key"],"type":"object"},"commercetools:index/BusinessUnitCompanyAddress:BusinessUnitCompanyAddress":{"language":{"nodejs":{"requiredOutputs":["country","id","key"]}},"properties":{"additionalAddressInfo":{"description":"Further information on the Address\n","type":"string"},"additionalStreetInfo":{"description":"Further information on the street address\n","type":"string"},"apartment":{"description":"Name or number of the apartment\n","type":"string"},"building":{"description":"Name or number of the building\n","type":"string"},"city":{"description":"Name of the city\n","type":"string"},"company":{"description":"Name of the company\n","type":"string"},"country":{"description":"Name of the country\n","type":"string"},"department":{"description":"Name of the department\n","type":"string"},"email":{"description":"Email address\n","type":"string"},"externalId":{"description":"ID for the contact used in an external system\n","type":"string"},"fax":{"description":"Fax number\n","type":"string"},"firstName":{"description":"First name of the contact\n","type":"string"},"id":{"description":"Unique identifier of the Address\n","type":"string"},"key":{"description":"User-defined identifier of the Address that must be unique when multiple addresses are referenced in BusinessUnits, Customers, and itemShippingAddresses (LineItem-specific addresses) of a Cart, Order, QuoteRequest, or Quote.\n","type":"string"},"lastName":{"description":"Last name of the contact\n","type":"string"},"mobile":{"description":"Mobile phone number\n","type":"string"},"phone":{"description":"Phone number\n","type":"string"},"poBox":{"description":"Post office box number\n","type":"string"},"postalCode":{"description":"Postal code\n","type":"string"},"region":{"description":"Name of the region\n","type":"string"},"salutation":{"description":"Salutation of the contact, for example Ms., Mr.\n","type":"string"},"state":{"description":"Name of the state\n","type":"string"},"streetName":{"description":"Name of the street\n","type":"string"},"streetNumber":{"description":"Street number\n","type":"string"},"title":{"description":"Title of the contact, for example Dr., Prof.\n","type":"string"}},"required":["country","key"],"type":"object"},"commercetools:index/BusinessUnitCompanyCustom:BusinessUnitCompanyCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"CustomValue fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"description":"The ID of the custom type to use for this resource.\n","type":"string"}},"type":"object"},"commercetools:index/BusinessUnitCompanyStore:BusinessUnitCompanyStore":{"properties":{"key":{"description":"User-defined unique identifier of the Store\n","type":"string"}},"type":"object"},"commercetools:index/BusinessUnitDivisionAddress:BusinessUnitDivisionAddress":{"language":{"nodejs":{"requiredOutputs":["country","id","key"]}},"properties":{"additionalAddressInfo":{"description":"Further information on the Address\n","type":"string"},"additionalStreetInfo":{"description":"Further information on the street address\n","type":"string"},"apartment":{"description":"Name or number of the apartment\n","type":"string"},"building":{"description":"Name or number of the building\n","type":"string"},"city":{"description":"Name of the city\n","type":"string"},"company":{"description":"Name of the company\n","type":"string"},"country":{"description":"Name of the country\n","type":"string"},"department":{"description":"Name of the department\n","type":"string"},"email":{"description":"Email address\n","type":"string"},"externalId":{"description":"ID for the contact used in an external system\n","type":"string"},"fax":{"description":"Fax number\n","type":"string"},"firstName":{"description":"First name of the contact\n","type":"string"},"id":{"description":"Unique identifier of the Address\n","type":"string"},"key":{"description":"User-defined identifier of the Address that must be unique when multiple addresses are referenced in BusinessUnits, Customers, and itemShippingAddresses (LineItem-specific addresses) of a Cart, Order, QuoteRequest, or Quote.\n","type":"string"},"lastName":{"description":"Last name of the contact\n","type":"string"},"mobile":{"description":"Mobile phone number\n","type":"string"},"phone":{"description":"Phone number\n","type":"string"},"poBox":{"description":"Post office box number\n","type":"string"},"postalCode":{"description":"Postal code\n","type":"string"},"region":{"description":"Name of the region\n","type":"string"},"salutation":{"description":"Salutation of the contact, for example Ms., Mr.\n","type":"string"},"state":{"description":"Name of the state\n","type":"string"},"streetName":{"description":"Name of the street\n","type":"string"},"streetNumber":{"description":"Street number\n","type":"string"},"title":{"description":"Title of the contact, for example Dr., Prof.\n","type":"string"}},"required":["country","key"],"type":"object"},"commercetools:index/BusinessUnitDivisionCustom:BusinessUnitDivisionCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"CustomValue fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"description":"The ID of the custom type to use for this resource.\n","type":"string"}},"type":"object"},"commercetools:index/BusinessUnitDivisionParentUnit:BusinessUnitDivisionParentUnit":{"properties":{"id":{"description":"User-defined unique identifier of the business unit\n","type":"string"},"key":{"description":"User-defined unique key of the business unit\n","type":"string"}},"type":"object"},"commercetools:index/BusinessUnitDivisionStore:BusinessUnitDivisionStore":{"properties":{"key":{"description":"User-defined unique identifier of the Store\n","type":"string"}},"type":"object"},"commercetools:index/CartDiscountCustom:CartDiscountCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/CartDiscountTarget:CartDiscountTarget":{"properties":{"discountedQuantity":{"description":"MultiBuyLineItems or MultiBuyCustomLineItems target specific fields. If set for another target the value will be ignored\n","type":"number"},"maxOccurrence":{"description":"MultiBuyLineItems or MultiBuyCustomLineItems target specific fields. If set for another target the value will be ignored\n","type":"number"},"predicate":{"description":"LineItems, CustomLineItems, MultiBuyLineItems or MultiBuyCustomLineItems target specific fields. If set for another target the value will be ignored\n","type":"string"},"selectionMode":{"description":"MultiBuyLineItems or MultiBuyCustomLineItems target specific fields. Can be either Cheapest or MostExpensive. If set for another target the value will be ignored\n","type":"string"},"triggerQuantity":{"description":"MultiBuyLineItems or MultiBuyCustomLineItems target specific fields. If set for another target the value will be ignored\n","type":"number"},"type":{"description":"Supports lineItems, customLineItems, multiBuyLineItems, multiBuyCustomLineItems, shipping or totalPrice\n","type":"string"}},"required":["type"],"type":"object"},"commercetools:index/CartDiscountValue:CartDiscountValue":{"properties":{"distributionChannelId":{"description":"Channel must have the role ProductDistribution. Optional when value type is giftLineItem\n","type":"string"},"monies":{"description":"Absolute discount specific fields\n","items":{"$ref":"#/types/commercetools:index%2FCartDiscountValueMoney:CartDiscountValueMoney"},"type":"array"},"permyriad":{"description":"Relative discount specific fields\n","type":"number"},"productId":{"description":"ResourceIdentifier of a Product. Required when value type is giftLineItem\n","type":"string"},"supplyChannelId":{"description":"Channel must have the role InventorySupply. Optional when value type is giftLineItem\n","type":"string"},"type":{"description":"Currently supports absolute/relative/giftLineItem\n","type":"string"},"variantId":{"description":"ProductVariant of the Product. Required when value type is giftLineItem\n","type":"number"}},"required":["type"],"type":"object"},"commercetools:index/CartDiscountValueMoney:CartDiscountValueMoney":{"properties":{"centAmount":{"description":"The amount in cents (the smallest indivisible unit of the currency)\n","type":"number"},"currencyCode":{"description":"The currency code compliant to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","type":"string"}},"required":["centAmount","currencyCode"],"type":"object"},"commercetools:index/CategoryAsset:CategoryAsset":{"language":{"nodejs":{"requiredOutputs":["id","name"]}},"properties":{"description":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"key":{"description":"Optional User-defined identifier for the asset. Asset keys are unique inside their container (in this case the category)\n","type":"string"},"name":{"additionalProperties":{"type":"string"},"type":"object"},"sources":{"description":"Array of AssetSource, Has at least one entry\n","items":{"$ref":"#/types/commercetools:index%2FCategoryAssetSource:CategoryAssetSource"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["name"],"type":"object"},"commercetools:index/CategoryAssetSource:CategoryAssetSource":{"properties":{"contentType":{"type":"string"},"dimensions":{"$ref":"#/types/commercetools:index%2FCategoryAssetSourceDimensions:CategoryAssetSourceDimensions"},"key":{"description":"Unique identifier, must be unique within the Asset\n","type":"string"},"uri":{"type":"string"}},"required":["uri"],"type":"object"},"commercetools:index/CategoryAssetSourceDimensions:CategoryAssetSourceDimensions":{"properties":{"h":{"description":"The height of the asset source\n","type":"number"},"w":{"description":"The width of the asset source\n","type":"number"}},"required":["h","w"],"type":"object"},"commercetools:index/CategoryCustom:CategoryCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/ChannelAddress:ChannelAddress":{"language":{"nodejs":{"requiredOutputs":["country","id"]}},"properties":{"additionalAddressInfo":{"type":"string"},"additionalStreetInfo":{"type":"string"},"apartment":{"type":"string"},"building":{"type":"string"},"city":{"type":"string"},"company":{"type":"string"},"country":{"type":"string"},"department":{"type":"string"},"email":{"type":"string"},"externalId":{"type":"string"},"fax":{"type":"string"},"firstName":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"lastName":{"type":"string"},"mobile":{"type":"string"},"phone":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"region":{"type":"string"},"salutation":{"type":"string"},"state":{"type":"string"},"streetName":{"type":"string"},"streetNumber":{"type":"string"},"title":{"type":"string"}},"required":["country"],"type":"object"},"commercetools:index/ChannelCustom:ChannelCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/ChannelGeolocation:ChannelGeolocation":{"properties":{"coordinates":{"items":{"type":"number"},"type":"array"}},"required":["coordinates"],"type":"object"},"commercetools:index/CustomerGroupCustom:CustomerGroupCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/DiscountCodeCustom:DiscountCodeCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/ProductDiscountValue:ProductDiscountValue":{"properties":{"monies":{"description":"Absolute discount specific fields\n","items":{"$ref":"#/types/commercetools:index%2FProductDiscountValueMoney:ProductDiscountValueMoney"},"type":"array"},"permyriad":{"description":"Relative discount specific fields\n","type":"number"},"type":{"description":"Currently supports absolute/relative/external\n","type":"string"}},"required":["type"],"type":"object"},"commercetools:index/ProductDiscountValueMoney:ProductDiscountValueMoney":{"language":{"nodejs":{"requiredOutputs":["centAmount","currencyCode","fractionDigits"]}},"properties":{"centAmount":{"description":"The amount in cents (the smallest indivisible unit of the currency)\n","type":"number"},"currencyCode":{"description":"The currency code compliant to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","type":"string"},"fractionDigits":{"description":"The number of default fraction digits for the given currency, like 2 for EUR or 0 for JPY\n","type":"number"}},"required":["centAmount","currencyCode"],"type":"object"},"commercetools:index/ProductSelectionCustom:ProductSelectionCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"CustomValue fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"description":"The ID of the custom type to use for this resource.\n","type":"string"}},"type":"object"},"commercetools:index/ProductTypeAttribute:ProductTypeAttribute":{"properties":{"constraint":{"description":"Describes how an attribute or a set of attributes should be validated across all variants of a product. See also [Attribute Constraint](https://docs.commercetools.com/api/projects/productTypes#attributeconstraint-enum)\n","type":"string"},"inputHint":{"description":"Provides a visual representation type for this attribute. only relevant for text-based attribute types like TextType and LocalizableTextType\n","type":"string"},"inputTip":{"additionalProperties":{"type":"string"},"description":"Additional information about the attribute that aids content managers when setting product details\n","type":"object"},"label":{"additionalProperties":{"type":"string"},"description":"A human-readable label for the attribute\n","type":"object"},"level":{"description":"Specifies whether the Attribute is defined at the Product or Variant level.\n","type":"string"},"name":{"description":"The unique name of the attribute used in the API. The name must be between two and 256 characters long and can contain the ASCII letters A to Z in lowercase or uppercase, digits, underscores (_) and the hyphen-minus (-).\nWhen using the same name for an attribute in two or more product types all fields of the AttributeDefinition of this attribute need to be the same across the product types, otherwise an AttributeDefinitionAlreadyExists error code will be returned. An exception to this are the values of an enum or lenum type and sets thereof\n","type":"string"},"required":{"description":"Whether the attribute is required to have a value\n","type":"boolean"},"searchable":{"description":"Whether the attribute's values should generally be activated in product search\n","type":"boolean"},"type":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeType:ProductTypeAttributeType","description":"[AttributeType](https://docs.commercetools.com/api/projects/productTypes#attributetype)\n"}},"required":["label","name","type"],"type":"object"},"commercetools:index/ProductTypeAttributeType:ProductTypeAttributeType":{"properties":{"elementType":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeTypeElementType:ProductTypeAttributeTypeElementType"},"localizedValues":{"description":"Localized values for the <span pulumi-lang-nodejs=\"`lenum`\" pulumi-lang-dotnet=\"`Lenum`\" pulumi-lang-go=\"`lenum`\" pulumi-lang-python=\"`lenum`\" pulumi-lang-yaml=\"`lenum`\" pulumi-lang-java=\"`lenum`\">`lenum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeTypeLocalizedValue:ProductTypeAttributeTypeLocalizedValue"},"type":"array"},"name":{"description":"Name of the field type. Some types require extra fields to be set. Note that changing the type after creating is not supported. You need to delete the attribute and re-add it\n","type":"string"},"referenceTypeId":{"description":"Resource type the Custom Field can reference. Required when type is <span pulumi-lang-nodejs=\"`reference`\" pulumi-lang-dotnet=\"`Reference`\" pulumi-lang-go=\"`reference`\" pulumi-lang-python=\"`reference`\" pulumi-lang-yaml=\"`reference`\" pulumi-lang-java=\"`reference`\">`reference`</span>\n","type":"string"},"typeReference":{"description":"Reference to another product type. Required when type is <span pulumi-lang-nodejs=\"`nested`\" pulumi-lang-dotnet=\"`Nested`\" pulumi-lang-go=\"`nested`\" pulumi-lang-python=\"`nested`\" pulumi-lang-yaml=\"`nested`\" pulumi-lang-java=\"`nested`\">`nested`</span>.\n","type":"string"},"values":{"description":"Values for the <span pulumi-lang-nodejs=\"`enum`\" pulumi-lang-dotnet=\"`Enum`\" pulumi-lang-go=\"`enum`\" pulumi-lang-python=\"`enum`\" pulumi-lang-yaml=\"`enum`\" pulumi-lang-java=\"`enum`\">`enum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeTypeValue:ProductTypeAttributeTypeValue"},"type":"array"}},"required":["name"],"type":"object"},"commercetools:index/ProductTypeAttributeTypeElementType:ProductTypeAttributeTypeElementType":{"properties":{"localizedValues":{"description":"Localized values for the <span pulumi-lang-nodejs=\"`lenum`\" pulumi-lang-dotnet=\"`Lenum`\" pulumi-lang-go=\"`lenum`\" pulumi-lang-python=\"`lenum`\" pulumi-lang-yaml=\"`lenum`\" pulumi-lang-java=\"`lenum`\">`lenum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeTypeElementTypeLocalizedValue:ProductTypeAttributeTypeElementTypeLocalizedValue"},"type":"array"},"name":{"description":"Name of the field type. Some types require extra fields to be set. Note that changing the type after creating is not supported. You need to delete the attribute and re-add it\n","type":"string"},"referenceTypeId":{"description":"Resource type the Custom Field can reference. Required when type is <span pulumi-lang-nodejs=\"`reference`\" pulumi-lang-dotnet=\"`Reference`\" pulumi-lang-go=\"`reference`\" pulumi-lang-python=\"`reference`\" pulumi-lang-yaml=\"`reference`\" pulumi-lang-java=\"`reference`\">`reference`</span>\n","type":"string"},"typeReference":{"description":"Reference to another product type. Required when type is <span pulumi-lang-nodejs=\"`nested`\" pulumi-lang-dotnet=\"`Nested`\" pulumi-lang-go=\"`nested`\" pulumi-lang-python=\"`nested`\" pulumi-lang-yaml=\"`nested`\" pulumi-lang-java=\"`nested`\">`nested`</span>.\n","type":"string"},"values":{"description":"Values for the <span pulumi-lang-nodejs=\"`enum`\" pulumi-lang-dotnet=\"`Enum`\" pulumi-lang-go=\"`enum`\" pulumi-lang-python=\"`enum`\" pulumi-lang-yaml=\"`enum`\" pulumi-lang-java=\"`enum`\">`enum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FProductTypeAttributeTypeElementTypeValue:ProductTypeAttributeTypeElementTypeValue"},"type":"array"}},"required":["name"],"type":"object"},"commercetools:index/ProductTypeAttributeTypeElementTypeLocalizedValue:ProductTypeAttributeTypeElementTypeLocalizedValue":{"properties":{"key":{"type":"string"},"label":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["key","label"],"type":"object"},"commercetools:index/ProductTypeAttributeTypeElementTypeValue:ProductTypeAttributeTypeElementTypeValue":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"commercetools:index/ProductTypeAttributeTypeLocalizedValue:ProductTypeAttributeTypeLocalizedValue":{"properties":{"key":{"type":"string"},"label":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["key","label"],"type":"object"},"commercetools:index/ProductTypeAttributeTypeValue:ProductTypeAttributeTypeValue":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"commercetools:index/ProjectSettingsBusinessUnit:ProjectSettingsBusinessUnit":{"language":{"nodejs":{"requiredOutputs":["myBusinessUnitStatusOnCreation"]}},"properties":{"myBusinessUnitAssociateRoleKeyOnCreation":{"description":"Default Associate Role assigned to the Associate creating a Business Unit using the My Business Unit endpoint. Note that this field cannot be unset once assigned!\n","type":"string"},"myBusinessUnitStatusOnCreation":{"description":"Status of Business Units created using the My Business Unit endpoint.\n","type":"string"}},"type":"object"},"commercetools:index/ProjectSettingsCart:ProjectSettingsCart":{"language":{"nodejs":{"requiredOutputs":["countryTaxRateFallbackEnabled","deleteDaysAfterLastModification","priceRoundingMode","taxRoundingMode"]}},"properties":{"countryTaxRateFallbackEnabled":{"description":"Indicates if country - no state tax rate fallback should be used when a shipping address state is not explicitly covered in the rates lists of all tax categories of a cart line items\n","type":"boolean"},"deleteDaysAfterLastModification":{"description":"Number - Optional The default value for the deleteDaysAfterLastModification parameter of the CartDraft. Initially set to 90 for projects created after December 2019.\n","type":"number"},"priceRoundingMode":{"description":"Default value for the priceRoundingMode parameter of the CartDraft. Indicates how the total prices on LineItems and CustomLineItems are rounded when calculated.\n","type":"string"},"taxRoundingMode":{"description":"Default value for the taxRoundingMode parameter of the CartDraft. Indicates how monetary values are rounded when calculating taxes for taxedPrice.\n","type":"string"}},"type":"object"},"commercetools:index/ProjectSettingsExternalOauth:ProjectSettingsExternalOauth":{"properties":{"authorizationHeader":{"description":"Partially hidden on retrieval\n","type":"string"},"url":{"secret":true,"type":"string"}},"type":"object"},"commercetools:index/ProjectSettingsMessage:ProjectSettingsMessage":{"language":{"nodejs":{"requiredOutputs":["deleteDaysAfterCreation","enabled"]}},"properties":{"deleteDaysAfterCreation":{"description":"Specifies the number of days each Message should be available via the Messages Query API\n","type":"number"},"enabled":{"description":"When true the creation of messages on the Messages Query HTTP API is enabled\n","type":"boolean"}},"type":"object"},"commercetools:index/ProjectSettingsShippingRateCartClassificationValue:ProjectSettingsShippingRateCartClassificationValue":{"properties":{"key":{"type":"string"},"label":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["key"],"type":"object"},"commercetools:index/ProjectSettingsShoppingList:ProjectSettingsShoppingList":{"language":{"nodejs":{"requiredOutputs":["deleteDaysAfterLastModification"]}},"properties":{"deleteDaysAfterLastModification":{"description":"Number - Optional The default value for the deleteDaysAfterLastModification parameter of the CartDraft. Initially set to 90 for projects created after December 2019.\n","type":"number"}},"type":"object"},"commercetools:index/ShippingMethodCustom:ShippingMethodCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/ShippingZoneLocation:ShippingZoneLocation":{"properties":{"country":{"description":"A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n","type":"string"},"state":{"type":"string"}},"required":["country"],"type":"object"},"commercetools:index/ShippingZoneRateFreeAbove:ShippingZoneRateFreeAbove":{"properties":{"centAmount":{"description":"The amount in cents (the smallest indivisible unit of the currency)\n","type":"number"},"currencyCode":{"description":"The currency code compliant to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n","type":"string"}},"required":["centAmount","currencyCode"],"type":"object"},"commercetools:index/ShippingZoneRatePrice:ShippingZoneRatePrice":{"properties":{"centAmount":{"type":"number"},"currencyCode":{"type":"string"}},"required":["centAmount","currencyCode"],"type":"object"},"commercetools:index/ShippingZoneRateShippingRatePriceTier:ShippingZoneRateShippingRatePriceTier":{"properties":{"minimumCentAmount":{"description":"If type is CartValue this represents the cent amount of the tier\n","type":"number"},"price":{"$ref":"#/types/commercetools:index%2FShippingZoneRateShippingRatePriceTierPrice:ShippingZoneRateShippingRatePriceTierPrice","description":"The price of the score, value or minimum*cent*amount tier\n"},"priceFunction":{"$ref":"#/types/commercetools:index%2FShippingZoneRateShippingRatePriceTierPriceFunction:ShippingZoneRateShippingRatePriceTierPriceFunction","description":"If type is CartScore. Allows to calculate a price dynamically for the score.\n"},"score":{"description":"If type is CartScore. Sets a fixed price for this score value\n","type":"number"},"type":{"description":"CartValue, CartScore or CartClassification\n","type":"string"},"value":{"description":"If type is CartClassification, must be a valid key of the CartClassification\n","type":"string"}},"required":["type"],"type":"object"},"commercetools:index/ShippingZoneRateShippingRatePriceTierPrice:ShippingZoneRateShippingRatePriceTierPrice":{"properties":{"centAmount":{"type":"number"},"currencyCode":{"type":"string"}},"required":["centAmount","currencyCode"],"type":"object"},"commercetools:index/ShippingZoneRateShippingRatePriceTierPriceFunction:ShippingZoneRateShippingRatePriceTierPriceFunction":{"properties":{"currencyCode":{"type":"string"},"function":{"type":"string"}},"required":["currencyCode","function"],"type":"object"},"commercetools:index/StoreCustom:StoreCustom":{"properties":{"fields":{"additionalProperties":{"type":"string"},"description":"Custom fields for this resource. Note that the values need to be provided as JSON encoded strings: `my-value = jsonencode({\"key\": \"value\"})`\n","type":"object"},"typeId":{"type":"string"}},"required":["typeId"],"type":"object"},"commercetools:index/StoreProductSelection:StoreProductSelection":{"properties":{"active":{"description":"If true, all Products assigned to this Product Selection are part of the Store's assortment\n","type":"boolean"},"productSelectionId":{"description":"Resource Identifier of a ProductSelection\n","type":"string"}},"required":["active","productSelectionId"],"type":"object"},"commercetools:index/SubscriptionChange:SubscriptionChange":{"properties":{"resourceTypeIds":{"description":"[Resource Type ID](https://docs.commercetools.com/api/projects/subscriptions#changesubscription)\n","items":{"type":"string"},"type":"array"}},"required":["resourceTypeIds"],"type":"object"},"commercetools:index/SubscriptionDestination:SubscriptionDestination":{"properties":{"accessKey":{"description":"The access key of the SQS queue, SNS topic or EventBridge topic\n","secret":true,"type":"string"},"accessSecret":{"description":"The access secret of the SQS queue, SNS topic or EventBridge topic\n","secret":true,"type":"string"},"accountId":{"description":"The AWS account ID of the SNS topic or EventBridge topic\n","type":"string"},"acks":{"description":"The acks value of the Confluent Cloud topic\n","type":"string"},"apiKey":{"description":"The API key of the Confluent Cloud topic\n","type":"string"},"apiSecret":{"description":"The API secret of the Confluent Cloud topic\n","type":"string"},"bootstrapServer":{"description":"The bootstrap server of the Confluent Cloud topic\n","type":"string"},"connectionString":{"description":"The connection string of the Azure Service Bus\n","type":"string"},"key":{"description":"The key of the Confluent Cloud topic\n","type":"string"},"projectId":{"description":"The project ID of the Google Cloud Pub/Sub\n","type":"string"},"queueUrl":{"description":"The URL of the SQS queue\n","type":"string"},"region":{"description":"The region of the SQS queue, SNS topic or EventBridge topic\n","type":"string"},"topic":{"description":"The topic of the Google Cloud Pub/Sub or Confluent Cloud topic\n","type":"string"},"topicArn":{"description":"The ARN of the SNS topic\n","type":"string"},"type":{"description":"The type of the destination. See [Destination](https://docs.commercetools.com/api/projects/subscriptions#destination) for more information\n","type":"string"},"uri":{"description":"The URI of the EventGrid topic\n","type":"string"}},"required":["type"],"type":"object"},"commercetools:index/SubscriptionEvent:SubscriptionEvent":{"properties":{"resourceTypeId":{"description":"[Resource Type ID](https://docs.commercetools.com/api/projects/subscriptions#ctp:api:type:EventSubscriptionResourceTypeId)\n","type":"string"},"types":{"description":"Must contain valid event types for the resource. For example, for resource type import-api the event type ImportContainerCreated is valid. If no types are given, the Subscription will receive all events for the defined resource type.\n","items":{"type":"string"},"type":"array"}},"required":["resourceTypeId","types"],"type":"object"},"commercetools:index/SubscriptionFormat:SubscriptionFormat":{"properties":{"cloudEventsVersion":{"description":"For CloudEvents\n","type":"string"},"type":{"type":"string"}},"type":"object"},"commercetools:index/SubscriptionMessage:SubscriptionMessage":{"properties":{"resourceTypeId":{"description":"[Resource Type ID](https://docs.commercetools.com/api/projects/subscriptions#changesubscription)\n","type":"string"},"types":{"description":"types must contain valid message types for this resource, for example for resource type product the message type ProductPublished is valid. If no types of messages are given, the subscription is valid for all messages of this resource\n","items":{"type":"string"},"type":"array"}},"required":["resourceTypeId","types"],"type":"object"},"commercetools:index/TaxCategoryRateSubRate:TaxCategoryRateSubRate":{"properties":{"amount":{"description":"Number Percentage in the range of [0..1]\n","type":"number"},"name":{"type":"string"}},"required":["amount","name"],"type":"object"},"commercetools:index/TypeField:TypeField":{"properties":{"inputHint":{"description":"[TextInputHint](https://docs.commercetools.com/api/projects/types#textinputhint) Provides a visual representation type for this field. It is only relevant for string-based field types like StringType and LocalizedStringType\n","type":"string"},"label":{"additionalProperties":{"type":"string"},"description":"A human-readable label for the field\n","type":"object"},"name":{"description":"The name of the field.\nThe name must be between two and 36 characters long and can contain the ASCII letters A to Z in lowercase or uppercase, digits, underscores (_) and the hyphen-minus (-).\nThe name must be unique for a given resource type ID. In case there is a field with the same name in another type it has to have the same FieldType also\n","type":"string"},"required":{"description":"Whether the field is required to have a value\n","type":"boolean"},"type":{"$ref":"#/types/commercetools:index%2FTypeFieldType:TypeFieldType","description":"Describes the [type](https://docs.commercetools.com/api/projects/types#fieldtype) of the field\n"}},"required":["label","name","type"],"type":"object"},"commercetools:index/TypeFieldType:TypeFieldType":{"properties":{"elementType":{"$ref":"#/types/commercetools:index%2FTypeFieldTypeElementType:TypeFieldTypeElementType"},"localizedValues":{"description":"Localized values for the <span pulumi-lang-nodejs=\"`lenum`\" pulumi-lang-dotnet=\"`Lenum`\" pulumi-lang-go=\"`lenum`\" pulumi-lang-python=\"`lenum`\" pulumi-lang-yaml=\"`lenum`\" pulumi-lang-java=\"`lenum`\">`lenum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FTypeFieldTypeLocalizedValue:TypeFieldTypeLocalizedValue"},"type":"array"},"name":{"description":"Name of the field type. Some types require extra fields to be set. Note that changing the type after creating is not supported. You need to delete the attribute and re-add it.\n","type":"string"},"referenceTypeId":{"description":"Resource type the Custom Field can reference. Required when type is `Reference`\n","type":"string"},"values":{"description":"Values for the <span pulumi-lang-nodejs=\"`enum`\" pulumi-lang-dotnet=\"`Enum`\" pulumi-lang-go=\"`enum`\" pulumi-lang-python=\"`enum`\" pulumi-lang-yaml=\"`enum`\" pulumi-lang-java=\"`enum`\">`enum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FTypeFieldTypeValue:TypeFieldTypeValue"},"type":"array"}},"required":["name"],"type":"object"},"commercetools:index/TypeFieldTypeElementType:TypeFieldTypeElementType":{"properties":{"localizedValues":{"description":"Localized values for the <span pulumi-lang-nodejs=\"`lenum`\" pulumi-lang-dotnet=\"`Lenum`\" pulumi-lang-go=\"`lenum`\" pulumi-lang-python=\"`lenum`\" pulumi-lang-yaml=\"`lenum`\" pulumi-lang-java=\"`lenum`\">`lenum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FTypeFieldTypeElementTypeLocalizedValue:TypeFieldTypeElementTypeLocalizedValue"},"type":"array"},"name":{"description":"Name of the field type. Some types require extra fields to be set. Note that changing the type after creating is not supported. You need to delete the attribute and re-add it.\n","type":"string"},"referenceTypeId":{"description":"Resource type the Custom Field can reference. Required when type is `Reference`\n","type":"string"},"values":{"description":"Values for the <span pulumi-lang-nodejs=\"`enum`\" pulumi-lang-dotnet=\"`Enum`\" pulumi-lang-go=\"`enum`\" pulumi-lang-python=\"`enum`\" pulumi-lang-yaml=\"`enum`\" pulumi-lang-java=\"`enum`\">`enum`</span> type.\n","items":{"$ref":"#/types/commercetools:index%2FTypeFieldTypeElementTypeValue:TypeFieldTypeElementTypeValue"},"type":"array"}},"required":["name"],"type":"object"},"commercetools:index/TypeFieldTypeElementTypeLocalizedValue:TypeFieldTypeElementTypeLocalizedValue":{"properties":{"key":{"type":"string"},"label":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["key","label"],"type":"object"},"commercetools:index/TypeFieldTypeElementTypeValue:TypeFieldTypeElementTypeValue":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"commercetools:index/TypeFieldTypeLocalizedValue:TypeFieldTypeLocalizedValue":{"properties":{"key":{"type":"string"},"label":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["key","label"],"type":"object"},"commercetools:index/TypeFieldTypeValue:TypeFieldTypeValue":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"}},"version":"1.22.0"}
